繁体   English   中英

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

[英]Sort a multi-dimensional array using 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,对数组进行排序?

谢谢!

您可以使用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');

我认为array_multisort()是您所需要的。 查看PHP文档

使用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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM