我有一堆我想要var_dump的数组。这些数组是基于表单中的$ _GET命名的,因此每个数组都不同,但是在开头附加了预定义的名称,因此我可能会array_bob
,array_mary
,array_sam
bob mary和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_ *结尾处使用外卡来转储mary,bob和sue。
有人可以指出我正确的方向吗?
答案 0 :(得分:1)
$arrName = $_GET['name'];
print_r(${'array_' . $arrName});
还是这个?
$nameArray = array('bob', 'mary', 'sam');
foreach ($nameArray as $arrName) {
if (isset(${'array_' . $arrName})) {
print_r(${'array_' . $arrName});
}
}
答案 1 :(得分:1)
所有数组都在GLOBAL对象中,对吧?所以你可以这样做:
$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]);