Существует массив произвольной глубины (до нескольких сот вложений), где каждый элемент массива: либо еще один заполненный массив, либо пустой массив. Но всегда массив!
Есть функция которая обходит этот массив, и:
Если находит "на краю" (на дне) глубины многомерного массива пустой массив, то заносит туда другой массив.
Если занесла, то прокручивает дальше, если не занесла и глубину больше нет останавливается.
Пример массива:
$test_mass['tk98op'] = array('p5ld2se'=>array(),
'38hjp9'=>array('2we8t2'=>array(), '1142ln'=>array()),
'669yo36'=>array('6318u7'=>array('22rv86'=>array(),
'13we42'=>array()), 'jk66d3'=>array()));
Вот мой код:
function deep($mass, $b = 0)
{
foreach ($mass as $key=>$val)
{
if(is_array($val))
{
if(count($val) == 0)
{
/* не один из этих трех вариантов ничего не дописывает */
//$val = array(1,4,217,432);
//$mass = array_merge($val, array(1,4,217,432));
//$mass[$key] = array(1,4,217,432);
}
deep($val, $b);
}
}
return $mass;
}
Как я полагаю проблема в полной адресации до глубины, но как ее решить универсально пока не понимаю. Прошу помощи.
Вот что мы должны иметь на выходе:
Array
(
[tk98op] => Array
(
[p5ld2se] => Array
(
[0] => 1
[1] => 4
[2] => 217
[3] => 432
)
[38hjp9] => Array
(
[2we8t2] => Array
(
[0] => 1
[1] => 4
[2] => 217
[3] => 432
)
[1142ln] => Array
(
[0] => 1
[1] => 4
[2] => 217
[3] => 432
)
)
[669yo36] => Array
(
[6318u7] => Array
(
[22rv86] => Array
(
[0] => 1
[1] => 4
[2] => 217
[3] => 432
)
[13we42] => Array
(
[0] => 1
[1] => 4
[2] => 217
[3] => 432
)
)
[jk66d3] => Array
(
[0] => 1
[1] => 4
[2] => 217
[3] => 432
)
)
)
)
P.S. Так же не особо понимаю, обойдет ли моя функция многомерный массив например с двумя (тремя, четырьмя, итд) глубокими ветками?