Я пытаюсь достичь чего-то, что, как я наивно полагал, было бы простым: сглаживание многомерного массива (который может иметь много вложенных уровней), но в результате все еще с массивами.В идеале я ищу функцию, которая может перебирать 10+ вложенных уровней и обрабатывать различный набор ключей (не обязательно всегда один и тот же).
Короче говоря, поворачивая это:
Array
(
[0] => Array
(
[0] => Array
(
[index] => -1
[qty] => 77
[id] => 7
)
[1] => Array
(
[index] => -1
[qty] => 83
[id] => 8
)
)
[1] => Array
(
[0] => Array
(
[index] => -1
[qty] => 75
[id] => 13
)
[1] => Array
(
[index] => -1
[qty] => 60
[id] => 14
[msr] => g
)
)
[2] => Array
(
[index] => -1
[qty] => 10
[id] => 12
)
)
В это:
Array
(
[0] => Array
(
[index] => -1
[qty] => 77
[id] => 7
)
[1] => Array
(
[index] => -1
[qty] => 83
[id] => 8
)
[2] => Array
(
[index] => -1
[qty] => 75
[id] => 13
)
[3] => Array
(
[index] => -1
[qty] => 60
[id] => 14
[msr] => g
)
[4] => Array
(
[index] => -1
[qty] => 10
[id] => 12
)
)
Это то, что у меня было, и я думал, что это сработает, но я получаю плоский массив без информации о ключе (и если мне нужны ключи, каждая итерация перезаписывает предыдущие значения иЯ получаю только последний массив из них):
function flatten_multi_array(array $array){
$ret_array = array();
foreach(new RecursiveIteratorIterator(new RecursiveArrayIterator($array)) as $value) {
$ret_array[] = $value;
}
return $ret_array;
}