【发布时间】:2018-10-06 08:57:55
【问题描述】:
我有一个数组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 = $val\n";
}
返回错误信息 为 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
)
【问题讨论】:
-
那些数组无效。您不能多次拥有相同的密钥。键是唯一的。
-
另外,如in the manual 所述,
arsort()不返回排序后的数组。它返回一个布尔值。它修改原始数组(将其用作参考)。所以你实际上是在向foreach()传递一个无效的布尔值。 -
数组键是唯一的。但我使用它的缩写形式。