PHP сортировка многомерного массива usort () - PullRequest
0 голосов
/ 14 февраля 2012

У меня есть приведенный ниже массив, и я хочу упорядочить его по алфавиту по «имени».Я немного запутался, как использовать функцию usort () для этого, поскольку то, что у меня не работает, или есть лучшая функция для использования?

Array (
    [0] => SimpleXMLElement Object
        (
            [id] => 1118809
            [Name] => Laptop
            [parentID] => 0
            [sequence] => 4
            [visible] => 1
        )

    [1] => SimpleXMLElement Object
        (
            [id] => 1109785
            [Name] => Special Offers
            [parentID] => 0
            [sequence] => 0
            [visible] => 1
        )

    [2] => SimpleXMLElement Object
        (
            [id] => 1118805
            [Name] => Printers
            [parentID] => 0
            [sequence] => 12
            [visible] => 0
        )

    [3] => SimpleXMLElement Object
        (
            [id] => 1092140
            [Name] => USB
            [parentID] => 0
            [sequence] => 14
            [visible] => 1
        ) )

function sort_cats_by_name($a, $b) {
    return   $a->Name  - $b->Name;
}

usort($subcats, 'sort_cats_by_name');

1 Ответ

1 голос
/ 14 февраля 2012

Ох, вычитание строк кажется странным способом сравнения строк, оно не может работать !!

Этот должен работать намного лучше.

function sort_cats_by_name($a, $b) {
   return   strcmp($a->Name,$b->Name);
}
...