Я пытаюсь создать переменные из многомерного массива с помощью 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 php.net/manual/fr/control-structures.foreach.php
если вы хотите настроить таргетинг на какой-либо конкретный элемент, например. expiryDate
или odometerValue
, просто посмотрите на структуру массива с помощью print_r()
или var_dump()
и следуйте дорожка к своей цели, например. echo $someArray[0]['motTests'][0]['expiryDate'];
или echo $someArray[0]['motTests'][0]['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'];
}
}