@vince_leiks
Moved to Belarus in 1998.

Как создать мультиуровневый массив?

Допустим, есть простой массив $a и какая-то строка $s:
$a = array("val1", "val2", "val3"...);
$s = "str";

Что можно предпринять для того, чтобы создать многоуровневый массив, ключи иерархии которого были бы данными из массива $a, а самым низшим элементом была строка $s при том, что степень вложенности (т. е. кол-во элементов массива $a) заведомо неизвестна?
echo $result["val1"]["val2"]["val3"]...; // вывод - "str"

Заранее благодарю за ответы.
  • Вопрос задан
  • 144 просмотра
Решения вопроса 1
Immortal_pony
@Immortal_pony Куратор тега PHP
Например так:
function toMultidimensional(array $levels, $value=null) {
    $levelsQuantity = count($levels);
    $encodedArrayStart = "";
    $encodedArrayEnd = "";
    
    foreach ($levels as $i=>$level) {
        $encodedArrayStart .= "{\"{$level}\":";
        $encodedArrayEnd .= "}";
        
        if ($i==$levelsQuantity-1) {
            $encodedArrayStart .= json_encode($value);
        }
    }
     
    $encodedArray = $encodedArrayStart . $encodedArrayEnd;
    $array = json_decode($encodedArray, true);
    
    return $array;
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы