0

就像标题一样,我不知道从哪里开始,使用 asort() 和 sort() 并没有像我想象的那样有帮助。基本上我有一个这样的数组:

$array = array(
    'array_c' => array(
        'array_b' => (
            array('object' => 'e some Object'),
            array('object' => 'b some Object'),
        ),
        'array_a' => (
            array('object' => 'awesome Object'),
        ),
    ),
    'array_a' => array(
        'array_e' => (
            array('object' => 'e some Object'),
        ),
        'array_a' => (
            array('object' => 'b awesome Object'),
        );
    );
);

所以我在看asort,因为我想保持关联不变,我开始写的功能是:

function sort_me(some_array){
    $new_array = asort(some_array);
    return $new_array;
}

然后,此函数接受 $array['array_c'] 以便您返回按字母顺序排序的数组,如下所示:

    'array_c' => array(
        'array_a' => (
            array('object' => 'awesome Object'),
        ),
        'array_b' => (
            array('object' => 'b some Object'),
            array('object' => 'e some Object'),
        ),

    ),

有人能告诉我为什么我的功能不起作用吗?我误解了asort的力量吗?

4

1 回答 1

1

ksort 是要走的路,但 ksort 不返回新排序的数组:

http://us.php.net/ksort

如果数组可以排序,则返回 bool -> true,否则返回 false...

这段代码剪断应该做你需要的:

ksort($array);
foreach($array as $key=>$value){
    ksort(value);
    $array[$key]=$value;
}
print_r($array);
于 2013-01-02T17:24:33.063 回答