PHP排序问题,arsort vs asort +数组
我最近正在研究一个项目euler问题集,并遇到了这个奇怪的问题。 我已经使用第一个解决方案正确解决了问题,但我不知道为什么其他版本无法按预期工作。
以下是可用的代码:
asort($card_count, SORT_NUMERIC);
$card_count = array_reverse($card_count, true);
这里是没有的代码:
arsort($card_count, SORT_NUMERIC);
这是我改变的唯一路线,它在最终结果上产生了巨大的差异。 任何想法是什么与此?
在数组中排序相等的值会出现问题。 采取阵列:
$arr = array(
'a' => 1,
'b' => 1,
'c' => 1,
'd' => 1
);
在这个数组上调用asort($arr, SORT_NUMERIC)
将会颠倒数组 。 因此,代码行:
asort($arr, SORT_NUMERIC);
$arr = array_reverse($arr, true);
将把数组放回原始顺序 。
因此,添加一个更高的值,并将数组更改为:
$arr = array(
'a' => 1,
'b' => 1,
'c' => 2,
'd' => 1
);
asort($arr, SORT_NUMERIC);
$arr = array_reverse($arr, true);
将会:
Array
(
[c] => 2
[a] => 1
[b] => 1
[d] => 1
)
而
arsort($arr, SORT_NUMERIC);
将会:
Array
(
[c] => 2
[d] => 1
[b] => 1
[a] => 1
)
希望这可以解决这个问题。
链接地址: http://www.djcxy.com/p/61815.html