search

Home  >  Q&A  >  body text

看一个 PHP asort() 排序问题?

一个数组:

$test = array(1 => 0, 99 => 0, 87 => 0, 45 => 0, 67 => 0, 11 => 1, 2 => 0);

使用 asort($test) 排序,结果是:

{"67":0,"2":0,"1":0,"45":0,"87":0,"99":0,"11":1}

虽然值为 1 的键排在了最后,但是同样值为 0 的键,顺序跟之前不同了。

这里如何保证值为 0 的顺序不变?


高洛峰高洛峰2933 days ago1071

reply all(1)I'll reply

  • 欧阳克

    欧阳克2016-11-16 14:44:19

    PHP的asort和sort,底层是用快排实现的。无法保证同等大小的元素的顺序。

    要保证值为0的顺序不变?只能自己实现一个数组排序。


    reply
    0
  • Cancelreply