Как собрать массив из другого массива?


use_linux
109

Подскажите кто знает как собрать многомерный массив из другого?

Структура примерно такая:

Array ( [key] => Array ( [key1] => Array ( [0] => Array ( [@attributes] => Array ( [id] => value [name] => value ) [key2] => Array ( [key3] => Array ( [@attributes] => Array ( [id] => value [name] => value ) [key4] => Array ( [key5] => Array ( [@attributes] => Array ( [id] => value [name] => value ) [key6] => Array ( [key7] => Array ( [@attributes] => Array ( [type_id] => value [type_name] => value [name] => value ) [key8] => Array ( [0] => Array ( [@attributes] => Array ( [name] => value [name2] => value ) ) [1] => Array ( [@attributes] => Array ( [name] => value [name2] => value ) ) [2] => Array ( [@attributes] => Array ( [name] => value [name2] => value ) ) [3] => Array ( [@attributes] => Array ( [name] => value [name2] => value ) ) [4] => Array ( [@attributes] => Array ( [name] => value [name2] => value ) ) ) ) ) ) ) ) ) )

 

Всего 1576 ключей с таким массивом

Нужно выбрать нужные данные из каждого такого массива и сохранить в свой массив.

Я пробовал — не получается. Во все ячейки записывается один и тот же массив под нулевым индексом. В итоге я получил один и тот же массив в 1576 ячейках.


livetv
Сделайте обход через foreach

use_linux
livetv #:
Сделайте обход через foreach

Я так и сделал, в результате получилось то что описано выше.

Алгоритм не подскажите?

Что-то я не так делаю

foreach ($arr as $k => $v) {
  
        $result[]['item1'] = $v['key']['key1']['key2']['key3']['@attributes']['name'];
        $result[]['team2'] = $v['key']['key1']['key2']['key3']['@attributes']['name'];
        $result[]['item2'] = $v['key']['key1']['key2']['key3']['key4']['key5']['key6']['key7']['@attributes']['name'];
        $result[]['item3'] = $v['key']['key1']['key2']['key3']['key4']['key5']['key6']['key7']['key8']['@attributes']['name2'];
      
    }

так делал


livetv

['key1']['key2']

Замените на

['key1'][0]['key2']

use_linux
livetv #:

Замените на

Я для наглядности написал. Данные записываются, но все время из первого индекса и так 1576 раз. А из остальных ячеек почему-то ничего не пишется.


silicoid
мне кааца должна подойти функция  array_walk_recursive
но тут дело в решаемой задаче

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *