当2个属性具有相同值时,对数组中的对象进行排序

时间:2012-10-16 05:56:46

标签: php multidimensional-array

我有如下的数组。我想根据对象参数a_weight对这些进行排序。我无法做到这一点,第二件事是这个键a_weight可以在不同的对象中具有相同的值,如下面的show所示。有什么帮助排序吗?

[0] => stdClass Object
        (
            [a_priority] => 1
            [a_roleobjectid] => 1
            [a_roleid] => 1
            [a_objectid] => 1
            [a_objecttypeid] => 2
            [a_name] => Object Type
            [a_path] => abc/b
            [a_createddate] => 2012-10-08 11:00:00
            [a_createdby] => 1
            [a_modifieddate] => 2012-10-08 11:05:50
            [a_modifiedby] => 1
            [a_weight] => 1
            [a_cancreate] => 1
            [a_canread] => 1
            [a_canupdate] => 1
            [a_candelete] => 1
            [a_canprint] => 1
            [a_canexport] => 1
        )

    [1] => stdClass Object
        (
            [a_priority] => 1
            [a_roleobjectid] => 2
            [a_roleid] => 1
            [a_objectid] => 2
            [a_objecttypeid] => 2
            [a_name] => Object
            [a_path] => abc/a
            [a_createddate] => 2012-10-08 11:00:00
            [a_createdby] => 1
            [a_modifieddate] => 2012-10-08 11:05:50
            [a_modifiedby] => 1
            [a_weight] => 3
            [a_cancreate] => 1
            [a_canread] => 1
            [a_canupdate] => 1
            [a_candelete] => 1
            [a_canprint] => 1
            [a_canexport] => 1
        )
[2] => stdClass Object
        (
            [a_priority] => 1
            [a_roleobjectid] => 3
            [a_roleid] => 1
            [a_objectid] => 3
            [a_objecttypeid] => 2
            [a_name] => Role
            [a_path] => abc/r
            [a_createddate] => 2012-10-08 11:00:00
            [a_createdby] => 1
            [a_modifieddate] => 2012-10-08 15:19:02
            [a_modifiedby] => 1
            [a_weight] => 1
            [a_cancreate] => 1
            [a_canread] => 1
            [a_canupdate] => 1
            [a_candelete] => 1
            [a_canprint] => 1
            [a_canexport] => 1
        )

1 个答案:

答案 0 :(得分:1)

您需要使用uasort功能。有关详情,请访问http://php.net/manual/en/function.uasort.php

您的案例的例子是:

function mysort($a, $b){
    return $a->a_weight < $b->a_weight ? -1 : 1;
}
$objects = uasort($objects, 'mysort');