编程语言
首页 > 编程语言> > PHP多维数组(usort)

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通过删除“新闻1”,“新闻2”等来破坏我的关联数组.并将其替换为0,1,2 ……

是否有任何解决方案使列保持列名称?

谢谢

解决方法:

使用功能uasort代替usort,它保留了索引关联.

标签:php,arrays,sorting,associative,usort
来源: https://codeday.me/bug/20190621/1250914.html