PHP На одном уровне глубже в каждом цикле

Я пытаюсь пройти через один массив, добавляя новый уровень к другому массиву каждый раз. Позвольте мне проиллюстрировать – переменные значения $ arr различаются каждый раз

$arr = array("1","5","6"); 

перекручивание

 $index[$arr[0]]; 

перекручивание

 $index["1"][$arr[1]] // "1" since this key was filled in by the previous loop, continuing with a new key 

перекручивание

 $index["1"]["5"][$arr[2]] // same as previous loop 

– вывернули все элементы $ arr, результат – $ index ["1"] ["5"] ["6"] –

Проблема в том, что я не буду знать, сколько значений содержит массив $arr . Тогда я не знаю, как продолжить, например, $index["1"] когда первое значение $arr было зациклировано до следующего уровня массива (другими словами: добавьте еще один ключ).

Кто угодно?

Solutions Collecting From Web of "PHP На одном уровне глубже в каждом цикле"

Вы можете использовать ссылки здесь:

 $a = array("1","5","6"); $b = array(); $c =& $b; foreach ($a as $k) { $c[$k] = array(); $c =& $c[$k]; } 

выходы

 Array ( [1] => Array ( [5] => Array ( [6] => Array ( ) ) ) ) 

Чтобы переписать последний элемент другим значением, вы можете просто добавить строку:

 $c = 'blubber'; 

после цикла, потому что $ c является ссылкой на самый глубокий уровень массива, когда цикл закончен.

 function add_inner_array(&$array, $index) { if(isset($array[$index])) return true; else { $array[$index] = array(); return true; } } $a = array(1,5,6); $index = array(); $pass =& $index; foreach($a as $k) { add_inner_array($pass, $k); $pass =& $pass[$k]; } 

Вы в основном хотите увидеть, насколько глубок многомерный массив, не так ли? Если это так, это должно быть полезно: есть ли способ узнать, как «глубокий» массив PHP?

Возможно, я ошибаюсь, но я думаю, что вы задаете то же самое, что и этот вопрос: многомерные массивы, вложенные в неограниченную глубину