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

方法:

/**
     * 获取符合字段和字段值的数组集合
     * @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():用回调函数过滤数组中的单元。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值