Массив 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});
}
}