通过多维数组PHP的特定键排序

时间:2010-06-18 19:13:40

标签: php

我有一个数组数组。内部数组看起来像这样。

 Array
    (
        [comparisonFeatureId] => 1188
        [comparisonFeatureType] => Category
        [comparisonValues] => Array
            (
                [0] => Not Available
                [1] => Not Available
                [2] => Not Available
                [3] => Standard
            )

        [featureDescription] => Rear Reading Lamps
        [groupHeader] => Convenience
    )

所以我有一个上面数组的数组,我需要通过featureDescription对数组进行排序。有没有办法使用PHP内部函数之一?

2 个答案:

答案 0 :(得分:2)

在此处查看所有PHP排序函数的列表:http://php.net/manual/en/array.sorting.php

您可能需要usort()

<?php

function myCmp($a, $b)
{
  return strcmp($a["featureDescription"], $b["featureDescription"]);
}

usort($myArray, "myCmp");

答案 1 :(得分:1)

一种方法是使用array_multisort功能。唯一的缺点是,您需要从阵列的第一级获得所有featureDescription值的副本(以示例的快速方式)。

$featureDescriptionValues = array();    
foreach ($myArray as $node)
{
    $featureDescriptionValues[] = $node['featureDescription'];
}

array_multisort($myArray, $featureDescriptionValues, SORT_STRING, SORT_ASC);

$featureDescriptionValues的显示顺序与$myArray中显示的顺序相同非常重要。