PHP使用array_filter查找二维数组中符合指定字段和字段值的数据集合

1、方法:

 1     /**
 2      * 获取符合字段和字段值的数组集合
 3      * @param array $data 待过滤数组
 4      * @param string $field 要查找的字段
 5      * @param $value 要查找的字段值
 6      * @return array 返回所有符合要求的数组集合
 7      */
 8     public static function arrayFilterFieldValue(array $data, string $field, $value)
 9     {
10         $data = array_filter($data, function ($row) use ($field, $value) {
11             if (isset($row[$field])) {
12                 return $row[$field] == $value;
13             }
14         });
15         return $data;
16     }

2、示例,查找下面二维数组中name为“张三”的所有数据,原数组如下:

 3、调用方式如下:

 1 $arr = [
 2     [
 3         'id' => 1,
 4         'name' => '张三',
 5     ], [
 6         'id' => 2,
 7         'name' => '李四',
 8     ], [
 9         'id' => 3,
10         'name' => '王五',
11     ], [
12         'id' => 4,
13         'name' => '马六',
14     ], [
15         'id' => 5,
16         'name' => '张三',
17     ], [
18         'id' => 6,
19         'name' => '张三',
20     ], [
21         'id' => 6,
22         'name' => '李四',
23     ],
24 ];
25 $data = Helper::arrayFilterFieldValue($arr, 'name', '张三');

4、打印$data结果如下:

 5、相关函数:

array_filter():用回调函数过滤数组中的单元。

posted on 2020-07-10 17:54  Rover_Lee  阅读(2801)  评论(1编辑  收藏  举报

导航