PHP Массивы и использование переменных переменных для выбора правильного - PullRequest
0 голосов
/ 08 июля 2020

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

У меня есть серия массивов с тщательно структурированными именами. В предыдущем PHP я определяю различные разделы имени и использую их для создания строки, которая соответствует имени массива, на который мне нужно ссылаться, однако я продолжаю получать ошибку массива в строку, когда пытаюсь косвенно адресовать массив.

Есть ли способ передать его как массив?

т.е.

$Array1A = Array(1,2,3,4);
$Array1B = Array(2,3,4,1);
$Array2A = Array(3,4,1,2);
$Array2B = Array(4,1,2,3);

$Var1 = '2';
$Var2 = 'A';
$ArrayToLookup = 'Array'.$Var1.$Var2; // Returns the String 'Array2A'

$ArrayToUse = ${$ArrayToLookup}; // I get an Array to String error here

$Answer = $ArrayToUse[2]; // I would want this to read off $Array2A[2]

1 Ответ

0 голосов
/ 08 июля 2020

Ваш код работает в PHP 7.4, я бы посоветовал попробовать удвоить «$»:

$Array1A = Array(1,2,3,4);
$Array1B = Array(2,3,4,1);
$Array2A = Array(3,4,1,2);
$Array2B = Array(4,1,2,3);

$Var1 = '2';
$Var2 = 'A';
$ArrayToLookup = 'Array'.$Var1.$Var2; // Returns the String 'Array2A'

$ArrayToUse = ${$ArrayToLookup}; // <- this works when tested on php 7.4
$ArrayToUse = $$ArrayToLookup; // <- this should work since its 10 years old

$Answer = $ArrayToUse[2]; // I would want this to read off $Array2A[2]

echo $Answer; // returns 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...