1. 程式人生 > 實用技巧 >PHP使用array_filter查詢二維陣列中符合欄位和欄位值的資料集合

PHP使用array_filter查詢二維陣列中符合欄位和欄位值的資料集合

1、方法:

     /**
* 獲取符合欄位和欄位值的陣列集合
* @param array $data 待過濾陣列
* @param string $field 要查詢的欄位
* @param $value 要查詢的欄位值
* @return array 返回所有符合要求的陣列集合
*/
public static function arrayFilterFieldValue(array $data, string $field, $value)
{
$data = array_filter($data, function ($row) use ($field, $value) {
if (isset($row[$field])) {
return $row[$field] == $value;
}
});
return $data;
}

2、示例,查詢下面二維陣列中name為“張三”的所有資料,原陣列如下:

3、呼叫方式如下:

 $arr = [
[
'id' => 1,
'name' => '張三',
], [
'id' => 2,
'name' => '李四',
], [
'id' => 3,
'name' => '王五',
], [
'id' => 4,
'name' => '馬六',
], [
'id' => 5,
'name' => '張三',
], [
'id' => 6,
'name' => '張三',
], [
'id' => 6,
'name' => '李四',
],
];
$data = Helper::arrayFilterFieldValue($arr, 'name', '張三');

4、列印$data結果如下:

5、相關函式:

array_filter():用回撥函式過濾陣列中的單元。