0

我有以下数组:

$myArray
: array = 
  0: array = 
    0: string = 2012
    1: string = 1
    2: string = JOHN
  1: array = 
    0: string = 2012
    1: string = 2
    2: string = JOHN
  2: array = 
    0: string = 2012
    1: string = 3
    2: string = MARK

我也有变量 $name。假设这次 $name 等于 JOHN

我必须做些什么才能拥有一个新数组,其中仅包含包含 JOHN 的元素,如下所示:

$myArray
: array = 
  0: array = 
    0: string = 2012
    1: string = 1
    2: string = JOHN
  1: array = 
    0: string = 2012
    1: string = 2
    2: string = JOHN

太感谢了!

4

2 回答 2

2

最简单的方法是将array_filter与自定义回调一起使用;在这种情况下使用闭包:

// $name is the variable containing 'JOHN'
$array2 = array_filter($array1, function($val) use ($name) {
   return $val[2] === $name;
});
于 2012-09-18T15:00:28.043 回答
1
function search ($arr, $name){
    $result = array();
    foreach ($arr as $v) {
        if ($v[2] == $name)
            $result[] = $v;
    }
    return $result;
}

此函数返回一个仅包含您想要的值的数组。

于 2012-09-18T14:50:22.147 回答