Переменная переменная для массива

Я определил массив $array[1][1][test]="hello world", Я хотел бы получить это значение с помощью переменных переменных. Я пробовал это без успеха:

$var1="array";
$var2="[1][1]";
$var3="['test']";

echo ${$var1}{$var2}{$var3};

Выход null,

2

Решение

Я не понимаю твой вопрос

Если вы получите var попробуйте это:

echo $array[1][1][test];

«более динамично»:

$i = 1;
$x = 'test';

echo $array[$i][$i][$x];
0

Другие решения

PHP руководство не охватывает использование индексов массива переменных-переменных слишком подробно, но в комментариях упоминается, что они не работают так, как вы выяснили.

Некоторые обходные пути предоставляются, однако:

$array[1][1]['test']="hello world"
$var1="array";
$var2="[1][1]";
$var3="['test']";

$tmp=$var1.$var2.$var3;

eval('echo $'.$tmp.';');

Выше результаты в ожидаемом «привет мире» продукции. Тем не менее, я бы уклонился от использования eval() в любом коде.

Комментарий (ник на customdesigns dot ca, датированный 2006 г.) на странице руководства также предоставляет функцию, которая может обрабатывать переменные массивы с индексами.

0

По вопросам рекламы [email protected]