微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从嵌套数组中获取唯一值 - Laravel

如何解决从嵌套数组中获取唯一值 - Laravel

我想从 Laravel 中的数组中获取带有 id 的唯一名称。我怎么能得到那个?我已经尝试过如下所示的 foreach 循环,但没有成功。

$features=[];
    foreach ($vehicles as $key => $vehicle) {
        # code...
        $features[$key] = $vehicle->features;
    }
    
    $distinct_features = array_unique($features);

我的数组就像:

[[{"id":2,"name":"Airbags","image":"features\\January2021\\P69889cirEy57Asq9rld.png","active":1,"created_at":"2021-01-26T17:35:28.000000Z","updated_at":"2021-01-26T17:35:28.000000Z","pivot":{"vehicle_id":6,"feature_id":2}},{"id":3,"name":"ABS","image":"features\\January2021\\SpZJq3j30oISFqdYwxfU.png","active":0,"created_at":"2021-01-26T17:36:00.000000Z","updated_at":"2021-02-22T10:33:26.000000Z","feature_id":3}}],[{"id":2,"pivot":{"vehicle_id":7,"feature_id":2}}],"pivot":{"vehicle_id":8,"pivot":{"vehicle_id":9,"pivot":{"vehicle_id":10,"feature_id":3}}]]

提前致谢。

解决方法

您可以使用laravel collectionunique()方法

collect($vehicles)
    ->flatten(1)
    ->unique(function ($item) {
        return $item['id'] . $item['name'];
    });

由于您的数据位于不同的数组中,因此我将其展平到一个级别以将所有数据都放在一个数组中,然后我定义了一个闭包函数来定义您的自定义唯一性逻辑(id 的组合姓名).

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。