Массив var_dump с использованием preg_match

У меня есть куча массивов, которые я хотел бы var_dump. Эти массивы названы на основе $_GET из формы, поэтому каждый из них отличается, но к началу привязано предварительно определенное имя, поэтому я мог бы иметь array_bob, array_mary, array_sam где Боб Мэри и Сэм - это значение $_GET.

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

Я думал, что-то вроде этого, но это, очевидно, не работает

          if (isset($array_(preg_match("/[A-Z]|[0-9]/i",$array_))))
          {   
              var_dump($array_(preg_match("/[A-Z]|[0-9]/i",$array_)))
          }

По сути, мне нужен подстановочный знак в конце array_* для вывода Мэри, Боба и Сью.

Может кто-нибудь, пожалуйста, укажите мне в правильном направлении?

2 ответа

Решение

Все массивы находятся в глобальном объекте, верно? Так что вы можете сделать это:

$arrayName = "array_" . $_GET['name'];
var_dump($GLOBALS[$arrayName]);

Хотя лучшим способом сделать это было бы использование всех массивов array_bob, array_mary и т. Д. В виде индексов в одном массиве, чтобы вам не приходилось иметь дело с объектом GLOBAL. Что-то вроде этого:

$allArrays = array("mary" => array_mary, "bob" => array_bob);
$name = $_GET['name'];
var_dump($allArrays[$name]);

Ты ищешь это??

$arrName = $_GET['name'];
print_r(${'array_' . $arrName});

или это?

$nameArray = array('bob', 'mary', 'sam');

foreach ($nameArray as $arrName) {
  if (isset(${'array_' . $arrName})) {
    print_r(${'array_' . $arrName});
  }
}
Другие вопросы по тегам