在PHP中按名称对数组进行排序

时间:2014-06-12 03:37:15

标签: php arrays sorting

我有一个如下数组:

Array (
[id] => Array
    (
        [0] => 3321
        [1] => 3318
        [2] => 3320
        [3] => 3319
        [4] => 3324
        [5] => 3322
    )

[name] => Array
    (
        [0] => Carla Taku
        [1] => Honey-Pearl Te Moni
        [2] => Monique Koroua
        [3] => Summer Hellier
        [4] => Wayne Kahukiwa
        [5] => Natasha Merito
    )

[courses] => Array
    (
        [0] => 2
        [1] => 1
        [2] => 1
        [3] => 1
        [4] => 1
        [5] => 1
    )

)

我想通过" name"对此进行排序,但我无法解决如何执行此操作的问题?由于其他一些代码,我无法使其成为多维的。我尝试过usort,ksort,array_sort,array_multisort,但我没有经验足以对此进行排序。有人有什么建议吗?请温柔,我对这些人不熟悉。谢谢。 :)

3 个答案:

答案 0 :(得分:4)

我认为array_multisort就是你所追求的:

array_multisort($array['name'], $array['id'], $array['courses']);

答案 1 :(得分:1)

我昨天偶然发现了整理的东西。希望这可以给你一些提示。

function SortByName($a,$b){
    return strcasecmp($a['name'], $b['name']);
}

usort($YourArray, 'SortByName');

答案 2 :(得分:0)

抱歉没有使用你的特定阵列,我很懒,哈哈。然而,这应该对你有用,很容易就像馅饼一样。

$ar = array(
    array("10", 11, 100, 100, "a"),
    array(1, 2, "2", 3, 1)
);

$temp = $ar[1];

$count = 0;

asort($ar[0]);
foreach ($ar[0] as $key => $value) {
    $ar[1][$count] = $temp[$key];
    $count++;
}

print_r($ar);