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
делает.