首页 > 解决方案 > 如何根据php中的键过滤和设置优先级数组

问题描述

Array
(
    [0] => stdClass Object
        (
            [category_id] => 5
            [distributor_id] => 999999
            [name] => Attractions
            [parent_category_id] => 0
            [is_global_category] => 0
            [category_logo] => qrcodes/categoryupload/img_1438954822_attractions.png
            [is_active] => 1
            [ticket_ids] => 
            [position] => 0
        )

    [1] => stdClass Object
        (
            [category_id] => 5
            [distributor_id] => 8885
            [name] => Attractions
            [parent_category_id] => 0
            [is_global_category] => 0
            [category_logo] => qrcodes/categoryupload/img_1438954822_attractions.png
            [is_active] => 1
            [ticket_ids] => 
            [position] => 0
        )

    [2] => stdClass Object
        (
            [category_id] => 6
            [distributor_id] => 999999
            [name] => Walk & Bike
            [parent_category_id] => 0
            [is_global_category] => 0
            [category_logo] => qrcodes/categoryupload/img_1438406863_walk-bike.png
            [is_active] => 1
            [ticket_ids] => ["13594"]
            [position] => 0
        )

)

我想从这个数组创建新数组。这里有两种类型的分销商 id 可以是:

[distributor_id] => 999999 这是固定的

第二个是

[distributor_id] => $cod_id(8885) 任何登录的人

现在我想创建新数组并希望优先考虑 [distributor_id] => $cod_id(8885) 并希望结果看起来像这样

Array
    (

        [0] => stdClass Object
            (
                [category_id] => 5
                [distributor_id] => 8885
                [name] => Attractions
                [parent_category_id] => 0
                [is_global_category] => 0
                [category_logo] => qrcodes/categoryupload/img_1438954822_attractions.png
                [is_active] => 1
                [ticket_ids] => 
                [position] => 0
            )

        [1] => stdClass Object
            (
                [category_id] => 6
                [distributor_id] => 999999
                [name] => Walk & Bike
                [parent_category_id] => 0
                [is_global_category] => 0
                [category_logo] => qrcodes/categoryupload/img_1438406863_walk-bike.png
                [is_active] => 1
                [ticket_ids] => ["13594"]
                [position] => 0
            )

    )

如何使用 foreach 和其他解决方案处理它

标签: phparrayscodeignitersortinglaravel-5

解决方案


您可以使用usort()函数。

function comparator($object1, $object2) { 
    return $object1->distributor_id > $object2->distributor_id; 
} 

usort($array, 'comparator');

从这里阅读更多信息。


推荐阅读