[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Составное имя многомерного массива
Barh
Изложу суть того, что необходимо сделать.

есть массив:
$array['settings']['play'] = 1;


есть набор переменных:
$var = 'settings';
$var2 = 'play'


Что бы вывести необходимое значение 1:
echo $array[$var ][$var2];


Это всё легко, если я знаю количество аргументов, а если длина вложенности может быть гораздо больше.

Как то можно записать весь путь в строку ?

что-то похожее на ${"array[$var][$var2]"} // знаю, что это неверно, но было бы неплохо если можно строку преобразовать в ссылку на массив.

Т.е. приходит в функцию 5 аргументов ( 'settings', 'play', 'home', 'set' )
Как составить ДИНАМИЧЕСКИ из приходящих элементов, что то похожее на:
echo $array[$var ][$var2];
Barh
Более кратко:

В функцию приходят 5 аргументов и из них нужно составить путь до конкретного ключа многомерное массива.

function test ()
{
// считаем количество аргументов
// из них составляем путь

return $array[$arg1][$arg2][$arg3][$arg4][$arg5]
}


как составить этот путь динамически?
Winston
func_get_args + foreach + eval
Barh
eval(), потенциально может быть опасной функцией, если другого пути нет, то реализую через с нее, предварительно всё обезапасив.

Других решений кроме, как использовать eval() нет?
Winston
В данном случае она опасности не представляет, у тебя будет написано примерно такое
$a[1][2][3] = 'ok';
$v = '$a[1][2][3]';
echo eval("return $v;");
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.