Сортировка по определенному ключу многомерного массива PHP - PullRequest
2 голосов
/ 18 июня 2010

У меня есть массив массивов.Внутренний массив выглядит следующим образом.

 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 ]

2 голосов
/ 18 июня 2010

Смотрите список всех функций сортировки 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 голос
/ 18 июня 2010

Один из способов - использовать функцию array_multisort . Единственным недостатком этого является то, что вам требуется копия всех значений featureDescription (с кратким foreach для примера) с первого уровня массива.

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

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

Важно, чтобы $featureDescriptionValues отображались в том же порядке, в каком они представлены в $myArray.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...