Php 获取仅包含特定值的元素的新数组

Php 获取仅包含特定值的元素的新数组,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我得到了以下数组: $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 = MAR

我得到了以下数组:

$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
万分感谢

function search ($arr, $name){
    $result = array();
    foreach ($arr as $v) {
        if ($v[2] == $name)
            $result[] = $v;
    }
    return $result;
}
此函数返回仅包含所需值的数组


此函数返回一个仅包含所需值的数组。

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

// $name is the variable containing 'JOHN'
$array2 = array_filter($array1, function($val) use ($name) {
   return $val[2] === $name;
});

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

// $name is the variable containing 'JOHN'
$array2 = array_filter($array1, function($val) use ($name) {
   return $val[2] === $name;
});

你至少试过用手动方式循环所有元素吗?你至少试过用手动方式循环所有元素吗?