使用PHP对多维数组进行排序

时间:2011-03-15 13:56:19

标签: php

我的数组是这样创建的:

$c3_array[$c3_count]["box"] = $box;
$c3_array[$c3_count]["subseries"] = $subseries;
$c3_array[$c3_count]["foldertitle"] = $foldertitle;
$c3_array[$c3_count]["uri"] = $uri;

如何根据“box”ASC对数组进行排序,然后基于“foldertitle”ASC?

谢谢!

3 个答案:

答案 0 :(得分:0)

您可以使用usort并创建自己的比较功能。这是一个简单的例子,可能会也可能不会,取决于数组中的实际值是什么,但它至少应该给你一个想法。

function mysort ($a, $b)
{
    if ($a['box'] > $b['box']) return 1;
    if ($a['box'] < $b['box']) return -1;
    if ($a['foldertitle'] > $b['foldertitle']) return 1;
    if ($a['foldertitle'] < $b['foldertitle']) return -1;
    return 0;
}

usort($c3_array, 'mysort');

答案 1 :(得分:0)

我认为array_multisort()就是你所需要的。查看PHP documentation

答案 2 :(得分:0)

使用array_multisort,如示例3所示。

$boxes = array();
$foldertitles = array();
foreach($c3_array as $key => $array) {
    $boxes[$key] = $array['box'];
    $foldertitles[$key] = $array['foldertitle'];
}

array_multisort($boxes, SORT_ASC, $foldertitles, SORT_ASC, $c3_array);