没有不值得去解决的问题,也没有不值得去学习的技术!

How to Find Multiple Key-Value Pairs in a Laravel 9 Collection

1. The current collection format is as follows:

Plaintext
Illuminate\Support\Collection Object
(
    [items:protected] => Array
        (
            [0] => Array
                (
                    [id] => 77631
                    [name] => 客户姓名
                    [email] => 44445@163.com
                    [type] => 1
                )

            [1] => Array
                (
                    [id] => 77630
                    [name] => 王某人2
                    [email] => 4444@163.com
                    [type] => 0
                )

            [2] => Array
                (
                    [id] => 77629
                    [name] => 王某人
                    [email] => 44445@163.com
                    [type] => 1
                )

            [3] => Array
                (
                    [id] => 77628
                    [name] => 王某某
                    [email] => 44445@163.com
                    [type] => 1
                )

            [4] => Array
                (
                    [id] => 77627
                    [name] => 李某某
                    [email] => 4444@163.com
                    [type] => 1
                )

        )

    [escapeWhenCastingToString:protected] => 
)


2. If you need to search based on the id, the firstWhere method returns the first element in the collection with the given key/value pair:

PHP

        $customer = $customers->firstWhere('id', 77631);
        print_r($customer);
        exit;

Plaintext
Array
(
    [id] => 77631
    [name] => 客户姓名
    [email] => 44445@163.com
    [type] => 1
)


3. Now we need to search based on these two key/value pairs: name and email. The first method returns the first element in the collection that passes a given truth test. This works as expected:

PHP

        $customer = $customers->first(function ($value, $key) {
            return $value['name'] == '客户姓名' && $value['email'] == '44445@163.com';
        });
        print_r($customer);
        exit;

JSON

Array
(
    [id] => 77631
    [name] => 客户姓名
    [email] => 44445@163.com
    [type] => 1
)


关于作者 · 持续学习与技术实践

我是一名拥有 15 年以上开发经验的技术从业者,自 2013 年起持续运营个人技术博客,记录工作与个人项目中遇到的真实问题,以及解决问题过程中的探索、实践和思考。

除了技术写作,我也在持续开发和维护自己的独立项目,探索新技术和新工具在实际场景中的应用。我始终相信,没有不值得去解决的问题,也没有不值得去学习的技术。

如果这篇文章对你有所帮助,欢迎浏览博客中的其他文章,也欢迎交流技术经验与想法。

关于我  ·  GitHub  ·  邮件联系