У меня есть только многомерный ассоциативный массив, доступный только для чтения. Мне нужно извлечь определенные значения из для генерации вывода с некоторыми значениями.укажите конкретный ключ/значения в многомерном массиве, используя php
массив выглядит следующим образом:
array (
'Dogs' =>
array (
0 =>
array (
'Name' => 'Big Dogs',
'ID' => '32',
'Brown dogs' =>
array (
0 =>
array (
'Name' => '4 legged dogs',
'Retrievers' =>
array (
0 =>
array (
'Name' => 'Fido',
'ID' => '11',
'Owner' => 'Billy',
'IsaBiter' => true,
),
),
),
1 =>
array (
'Name' => '3 legged dogs',
'Retrievers' =>
array (
0 =>
array (
'Name' => 'Spot',
'ID' => '12',
'Owner' => 'Sally',
'IsaBiter' => false,
),
),
),
и т.д ..
И вложенный цикл Еогеасп, которая проходит через массив, который может напечатать все значения массива следующим образом:
echo "<ul>";
foreach($myArray as $arr1 => $val1) {
foreach($val1 as $arr2 => $val2) {
foreach($val2 as $val3) {
echo "<li>" . $val3 . "<ul>";
foreach($val3 as $arr4 => $val4) {
foreach($val4 as $arr5 => $val5) {
echo "<li>" . $val5;
foreach($val5 as $arr6 => $val6) {
//echo $val6;
foreach($val6 as $arr7 => $val7) {
echo $val7 . "<br />"; //dumps the details
}
echo "</li>";
}
}
}
echo "</ul>";
echo "</li>";
}
}
}
В идеале я хотел бы иметь возможность: 1) исключать значения, которые я не хочу показывать (ID, определенные имена уровней массива и т. Д., В настоящее время он показывает все) и 2) отображать конкретные (т.е. имя, владелец, IsaBiter), поэтому Я могу отформатировать результаты уборщика, аналогично этому:
Big Dogs
Brown Dogs
Retrievers
Name: Fido
Owner: Billy
IsaBiter: true
Name: Spot
Owner: Sally
IsaBiter: false
Вы должны использовать рекурсию для этого. –
Когда вы используете foreach ($ array AS $ key => $ value) {}, вы можете сравнить $ key с тем, что вы хотите показать (это просто строка). В любом случае, фильтрация уровня будет более сложной, вы должны включить значение итератора (целые уровни подсчета) и исключить, когда правильно. Может быть, как сказал @WayneWhitty, использование рекурсии было бы лучше. –
Спасибо за комментарии, но почему я был для этого? – bridgemanusa