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():用回调函数过滤数组中的单元。
来源:https://www.cnblogs.com/muzi-lee/p/13280532.html