繁体   English   中英

获取仅包含某些值的元素的新数组

[英]Getting a new array with just the elements that contain certain value

我有以下数组:

$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

太感谢了!

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

// $name is the variable containing 'JOHN'
$array2 = array_filter($array1, function($val) use ($name) {
   return $val[2] === $name;
});
function search ($arr, $name){
    $result = array();
    foreach ($arr as $v) {
        if ($v[2] == $name)
            $result[] = $v;
    }
    return $result;
}

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM