独一无二 collection Laravel

Unique collection Laravel

我想知道如何区分这个 Laravel collection 中的值,因为有 objects

的子数组

太多 sub-arrays,但我不知道如何过滤这个 collection 以减少 sub-arrays

我希望获得更少的 sub-arrays 以便我可以使其在 collection

中具有独特且明确的值

我是这样得到的:

$CategorieTree = $CategoriesItineraires->map(function ($categorie) {

            return (object) [
                $categorie->categorie->map(function ($items) {
                    
                    return $items;
                })
            ];
        });

这是结果!

 Illuminate\Support\Collection Object
        (
            [items:protected] => Array
                (
                    [0] => stdClass Object
                        (
                            [0] => Illuminate\Support\Collection Object
                                (
                                    [items:protected] => Array
                                        (
                                            [0] => Fongicides et assimilés
                                        )
        
                                )
        
                        )
        
                    [1] => stdClass Object
                        (
                            [0] => Illuminate\Support\Collection Object
                                (
                                    [items:protected] => Array
                                        (
                                            [0] => Autres
                                        )
        
                                )
        
                        )
        
                    [2] => stdClass Object
                        (
                            [0] => Illuminate\Support\Collection Object
                                (
                                    [items:protected] => Array
                                        (
                                            [0] => Insecticides et assimilés
                                            [1] => Fongicides et assimilés
                                        )
        
                                )
        
                        )
        
                    [3] => stdClass Object
                        (
                            [0] => Illuminate\Support\Collection Object
                                (
                                    [items:protected] => Array
                                        (
                                            [0] => Autres
                                        )
        
                                )
        
                        )
        
                )
        
        )

Laravel collections 有很多 options

我想你正在寻找 flatten


除此之外,您应该稍微更改一下代码,第一个 return object [...] 给出了一个奇怪的结果。 我想你想要以下内容:

$CategorieTree = $CategoriesItineraires->map(function ($categorie) {
    return $categorie->categorie->map(function ($items) {
        return $items;
    });
})->flatten();

编辑:

可以缩短为:

$CategorieTree = $CategoriesItineraires->map(function ($categorie) {
    return $categorie->categorie;
})->flatten();