Я определил массив $array[1][1][test]="hello world"
, Я хотел бы получить это значение с помощью переменных переменных. Я пробовал это без успеха:
$var1="array";
$var2="[1][1]";
$var3="['test']";
echo ${$var1}{$var2}{$var3};
Выход null
,
Я не понимаю твой вопрос
Если вы получите var попробуйте это:
echo $array[1][1][test];
«более динамично»:
$i = 1;
$x = 'test';
echo $array[$i][$i][$x];
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 г.) на странице руководства также предоставляет функцию, которая может обрабатывать переменные массивы с индексами.