PHP многомерный массив (usort)

У меня есть ассоциативный массив, как это

Array
(
    ["News 1"] => Array
        (
            [text] => tests
            [language] => 
            [advertiserCompetitionScale] => 5
            [avgSearchVolume] => 7480000
            [lastMonthSearchVolume] => 9140000
        )

    ["News 2"] => Array
        (
            [text] => personality tests
            [language] => 
            [advertiserCompetitionScale] => 5
            [avgSearchVolume] => 165000
            [lastMonthSearchVolume] => 201000
        )

    ["News 3] => Array
        (
            [text] => online tests
            [language] => 
            [advertiserCompetitionScale] => 5
            [avgSearchVolume] => 246000
            [lastMonthSearchVolume] => 301000
        )

)

Мне удалось отсортировать его по столбцу, который я хочу (LastMonthSearchVolume, например)

// compare function 
function cmpi($a, $b) 
{ 

     return strcmp($a["lastMonthSearchVolume"], $b["lastMonthSearchVolume"]); 
} 

// do the array sorting 
usort($latest_array, 'cmpi');

Проблема в том, что когда я вывожу массив, чтобы увидеть результат, usort сломал мой ассоциативный массив, удалив "News 1", "News 2" и т. Д. И заменив его на 0,1,2...

Есть ли какое-либо решение, чтобы сортировка сохраняла имя столбца?

Спасибо

2 ответа

На месте usort, используйте функцию uasort, который сохраняет индекс ассоциации.

Используйте вместо этого uasort. usort не поддерживает ассоциативные ключи, в то время как uasort делает.

Другие вопросы по тегам