从多维数组中获取整个数组

时间:2014-05-21 13:56:43

标签: php arrays multidimensional-array

如何使用字符串从多维数组中检索新数组?

n.b - 我没有检查变量的数组。我想使用字符串从多维数组中检索整个数组(作为新数组)。

假设我有一个多维数组,如下所示:

array(3) {
  [0]=>
    array(2) {
      ["foo"]=> "bar1"
      ["bar"]=> "foo1"
    }
  [1]=>
    array(2) {
      ["foo"]=> "bar2"
      ["bar"]=> "foo2"
    }
  [2]=>
    array(2) {
      ["foo"]=> "bar3"
      ["bar"]=> "foo3"
    }
}

所以我在一个数组中有一个3个数组。每个数组都有相同的键,但值不同。

现在让我说我有一个变量:

 $variable = "bar3";

如果变量的“foo”键与变量匹配,如何使用变量来检索整个数组。

所以输出应该是:

array(1) {
   ["foo"]=> "bar3"
}

1 个答案:

答案 0 :(得分:1)

只是一个没有测试的简单例子:

$newarray = array();
foreach($array as $subarray) {
    foreach( $subarray as $key => $value) {
        if(!array_key_exists($key, $newarray)) {
            $newarray[$key] =array();
        }
        array_push($newarray[$key], $value);
    }
}

使用一个键生成一个新数组,并将bar1,bar2等作为子数组生成。