基于子键对php子数组进行排序

时间:2014-12-02 03:26:03

标签: php arrays sorting nest

这是我的数组的片段,用于php 5.3.x:

$arr[$category][$item][$attr_qty] = 3;
$arr[$category][$item][$attr_price] = 12.00;

$category$item的任意整数,$attr_qty$attr_price也是如此。

是否可以通过$attr_qty快速对每个类别中的项目进行排序?

使用整数可以使代码更容易,但我觉得我必须使用关联数组。

1 个答案:

答案 0 :(得分:0)

您可以使用usort来指定自定义排序功能

usort($arr, 'customSortFunction');

function customSortFunction($a, $b)
{
    if     ($a['item']['attr_qty'] > $b['item']['attr_qty']) return 1;  //First element is bigger
    elseif ($a['item']['attr_qty'] < $b['item']['attr_qty']) return -1; //Second element is bigger
    else return 0;  //Both are equal
}