数组按值降序排序,在 php 中按升序对索引进行排序



我有一个数组pr($site_name_with_value)看起来像这样。这是两个combine_array的结果。

Array(
[Ashuganj PDB] => 720
[Bagherhat PGCB] => 720
[Banani_CO] => 720
[Barapukuria PGCB] => 784
[Barishal PGCB] => 780
[Benapole_CO] => 752
[Bogura RO] => 776
[Bogura_CO(IS)] => 784 
)

我已经尝试过这个预期输出。

$site_name_with_value_order = arsort($site_name_with_value); 
foreach ($site_name_with_value_order as $key => $val) {
echo "$key = $valn";
}

它返回一条错误消息为 foreach(( 提供的参数无效

首先,我想按值descending order对它们进行排序。其次,如果值相同,则按ascending对索引进行排序。

我想得到这样的输出。但我不知道如何获得预期的输出。

Array(
[Bogura_CO(IS)] => 784
[Barapukuria PGCB] => 784
[Barishal PGCB] => 780
[Bogura RO] => 776
[Benapole_CO] => 752 
[Ashuganj PDB] => 720
[Bagherhat PGCB] => 720
[Banani_CO] => 720   
)

首先,您创建了一个具有重复键的数组,这不是有效的方法。因此,当您尝试使用arsort()按值对数组进行排序时 -以相反的顺序对数组进行排序并保持索引关联,但它会针对不同的 php 版本返回不同的结果。查看演示

$array = array(

'Ash' => 776,
'Bag' => 720,
'Ban' => 720,
'Bar' => 776,
'Bar' => 780,
'Ben' => 752,
'Bog' => 720,
'Bog' => 780,
'Bue' => 776,  
);
arsort($array);
print_r($array);

无需分配

arsort($site_name_with_value); 

在另一个变量中,因为它只会返回到 1。所以只需循环

$site_name_with_value 

相反。

最新更新