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

上一篇: PHP sorting issue, arsort vs asort + array

下一篇: ABORT ON rollback the transaction?