PHP: изменение массива - PullRequest
       10

PHP: изменение массива

0 голосов
/ 09 октября 2009

Просто нужна помощь, чтобы получить этот иерархический массив ...

    Array (
       [root] => Array ([attr] => Array ([id] => 1) [label] => Array ([value] => My Root)
          [node] => Array (
             [0] => Array ([attr] => Array([id] => 2) [label] => Array([value] => Category 1)
                [node] => Array(
                   [0] => Array ([attr] => Array ([id] => 14) [label] => Array ([value] => Sub-Category 1))
                   [1] => Array([attr] => Array ([id] => 15) [label] => Array([value] => Sub-Category2))
etc, etc,

... и его изменение в соответствии с форматом массива

Array (
   [Category 1] => Array(
      [14] => Sub-Category 1
      [15] => Sub-Category 2
   )
)

Ответы [ 2 ]

2 голосов
/ 09 октября 2009
$newArray = array();
foreach ($array['root']['node'] as $node)
{
  $newArray[ $node['value'] ] = array();

  foreach ($node['node'] as $nestedNode)
    $newArray[ $node['value'] ][ $nestedNode['attr']['id'] ] = $nestedNode['label']['value'];
}

$ newArray - это ваш результат!

0 голосов
/ 09 октября 2009

Вы можете использовать Foreach для просмотра каждого массива узлов.

Вы должны создать рекурсивную функцию, которая возвращает окончательный массив и просматривает ближайший узел уровня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...