0

我有一堆我想 var_dump 的数组。这些数组是根据表单中的 $_GET 命名的,因此每个数组都不同,但在开头附加了一个预定义的名称,所以我可能有array_bob, array_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_* 末尾的通配符来转储玛丽、鲍勃和苏。

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

4

2 回答 2

0

你在找这个吗??

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

或这个 ?

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

foreach ($nameArray as $arrName) {
  if (isset(${'array_' . $arrName})) {
    print_r(${'array_' . $arrName});
  }
}
于 2013-02-27T04:24:47.657 回答
0

所有的数组都在 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]);
于 2013-02-27T04:36:45.203 回答