|
|
|
| Есть массив с такой структурой -
Array
(
[0] => ASUME Object
(
[pide] => 22
[done] => 66
[more] => Array
(
[0] => DONEL Object
(
[id] => 0
[more] => Array
(
[0] => RUMER Object
(
[id] => 2
[ord] => 35
)
[1] => RUMER Object
(
[id] => 3
[ord] => 35
)
)
)
[1] => DONEL Object
(
[id] => 2
[more] => Array
(
[0] => RUMER Object
(
[id] => 2
[ord] => 77
)
[1] => RUMER Object
(
[id] => 3
[ord] => 77
)
)
)
)
)
)
|
Нужно получит все ключи - и их соответствия. Делаю так -
array($scart);
foreach ($scart as $kluch)
{
foreach ($kluch as $dannie => $sup)
{
echo $dannie;
echo $sup;
}
}
|
и получаю
pide 22
done 66
more Array
Не пойму как перебрать остальное? В какую сторону смотреть? | |
|
|
|
|
|
|
|
для: Fest
(10.10.2013 в 23:13)
| | Смотреть в сторону рекурсии.
Т.е. выделить код, перебирающий один уровень массива в функцию и в ней выполнять проверку.
Если значение - массив или объект, то вызывать саму себя.
Примерно так:
<?php
$arr = // это исходный массив
recurs($arr); // запуск рекурсии
function recurs($data){ // сама рекурсивная функция
foreach($data as $key => $val){
if(is_array($val) || is_object($val)) // проверка значения
recurs($val);
else
echo $key.' '.$val."\n";
}
}
|
| |
|
|
|
|
|
|
|
для: Sfinks
(11.10.2013 в 08:22)
| | Да, - сработало - спасибо. Но вообще этот массив нужно преобразовать в
четыре строки -
0 id 0 0 id 2 ord 35
0 id 0 1 id 3 ord 35
1 id 2 0 id 2 ord 77
1 id 2 1 id 3 ord 77
|
и это нужно делать на этапе if...(как бы задать структуру массива, тем более что по ключам
обращаться нельзя, т.к. они могут меняться) - правильно ли я понимаю? | |
|
|
|