php - 如何使用 foreach 从多维数组中创建变量
问题描述
我正在尝试使用 foreach 从多维数组创建变量,但无法访问嵌套数组。
我尝试在当前的 foreach 命令中再次使用 foreach,但我认为数组格式的某些内容不允许我这样做。
PHP:
$response = curl_exec($cURL);
$result = json_decode($response, true);
$someArray = $result;
foreach ($someArray as $key => $value) {;
}
curl_close($cURL);
print $value["registration"];
print $value["make"];
print $value["model"];
print $value["fuelType"];
print $value["primaryColour"];
这正是我接收数组的方式。我可以为注册、制造、模型、firstUsedDate、fuelType 和primaryColour 创建变量。
array(
[0] => array(
[registration] => DU11LVA
[make] => MINI
[model] => MINI(R57)
[firstUsedDate] => 2011.03.05
[fuelType] => Diesel
[primaryColour] => White
[motTests] => array(
[0] => array(
[completedDate] => 2018.04.1116:00:30
[testResult] => PASSED
[expiryDate] => 2019.04.10
[odometerValue] => 45283
[odometerUnit] => mi
[motTestNumber] => 138359719457
[rfrAndComments] => array(
[0] => array(
[text] => Nearside Front Road wheel with a slightly distorted bead rim INSIDE (4.2.A.1a)
[type] => ADVISORY)))
[1] => array(
[completedDate] => 2018.04.1110:22:54
[testResult] => FAILED
[odometerValue] => 45283
[odometerUnit] => mi
[motTestNumber] => 652014545840
[rfrAndComments] => array(
[0] => array(
[text] => Nearside Front Road wheel with a slightly distorted bead rim INSIDE (4.2.A.1a)
[type] => ADVISORY)
[1] => array(
[text] => Nearside Front Shock absorber has a serious fluid leak (2.7.3)
[type] => FAIL)))
[2] => array(
[completedDate] => 2017.04.0610:27:08
[testResult] => PASSED
[expiryDate] => 2018.04.08
[odometerValue] => 37579
[odometerUnit] => mi
[motTestNumber] => 605834707501
[rfrAndComments] => array())
我正在尝试获取 expiryDate 和 odometerValue。
解决方案
你有一个包含其他数组的数组,所以保持简单并且只使用 foreach 循环,当你想要来自内部数组的东西时,你会启动另一个 foreach 循环来处理它。
此外,使用循环处理的代码应该存在于 foreach 中,而不是在它之后编码。
$response = curl_exec($cURL);
$result = json_decode($response, true);
curl_close($cURL);
foreach ($result as $value) {
print $value["registration"];
print $value["make"];
print $value["model"];
print $value["fuelType"];
print $value["primaryColour"];
foreach ($value['motTests'] as $mot) {
print $mot['expiryDate'];
print $mot['odometerValue'];
}
}
推荐阅读
- visual-studio - How Do I Delete A SSIS Log Configuration in SSDT
- javascript - MVC 5 - 在文档准备好时将下拉选项设置为选中后,为什么会重置?
- reactjs - 检查 cookie 中 JWT 令牌的有效性时如何避免不必要的 API 调用
- kubernetes - 具有入口的 Kubernetes 上的 Hyperledger Fabric
- .net - 我收到 null,什么时候从 Vue/NuxtJs 发帖
- python - ValueError:读取关闭的文件
- git - 如何查看当前在 Github 中配置的所有远程存储库?
- python - NLP - 负采样 - 如何从噪声分布中提取负样本?
- flutter - 如何参与或定位 ListView 中的特定项目以仅对其执行某些操作
- java - Android VOICE_CALL,过时的音频源