Сортировка многомерного массива - PullRequest
0 голосов
/ 23 февраля 2011

Я сначала укажу, что я уже просмотрел Stackoverflow и Интернет, и хотя их множество, ни один из них не объяснен так, чтобы я мог понять, как преобразовать код для работы с моим массивом. состав.

Полагаю, мне нужно использовать одну из функций uksort или uasort, но я тоже не уверен в этом.

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

Array
(
    [0] => Array
        (
            [Result] => Array
                (
                    [id] => 260
                    [event_id] => 72
                    [year] => 2010
                    [york_score] => 27
                    [york_points] => 0.0
                    [lancs_score] => 51
                    [lancs_points] => 4.0
                    [winner] => L
                    [confirmed] => Y
                    [updated] => 2010-05-01 16:10:03
                )

            [Event] => Array
                (
                    [id] => 72
                    [sport_id] => 25
                    [event_title] => 1st Team
                    [Sport] => Array
                        (
                            [id] => 25
                            [sport_title] => Netball
                        )

                )

        )

И где его [0] означает, что он продолжается.

Мне нужно отсортировать все массивы [0,1,2,3, ...] по ключу sport_title, найденному в [Event] [Sport]

Кто-нибудь знает, как создать для этого функцию сортировки?

Некоторое объяснение того, как работает функция, также было бы полезно, если бы мне позже понадобилось адаптировать / изменить код для работы в другом месте на моем сайте.

1 Ответ

3 голосов
/ 23 февраля 2011

Где $array - это имя массива, который содержит массив, который вы разместили в своем вопросе.

function sort_multi($item_1, $item_2)
{
   // strcmp looks at two strings and, based off the characters' and their order,
   // determines which one is numerically greater. When this function returns a
   // negative, for example, it means the first item it's comparing is less that the
   // second item (ef and eg, for example). The usort function then rearranges
   // the array based off these comparisons.
   return strcmp($item_1['Event']['Sport']['sport_title'], $item_2['Event']['Sport']['sport_title']);
}

usort($array, 'sort_multi');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...