使用preg_match的var_dump数组

时间:2013-02-27 04:14:02

标签: php preg-match var-dump

我有一堆我想要var_dump的数组。这些数组是基于表单中的$ _GET命名的,因此每个数组都不同,但是在开头附加了预定义的名称,因此我可能会array_bobarray_maryarray_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。

有人可以指出我正确的方向吗?

2 个答案:

答案 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]);