按索引排序php数组

时间:2011-10-28 06:34:59

标签: php arrays sorting

我在排序一个看起来像这样的简单数组时遇到了一些困难:

array(4) {
  [32]=>
  string(1) "1"
  [34]=>
  string(1) "2"
  [35]=>
  string(1) "1"
  [33]=>
  string(1) "0"
}

我只是想通过索引对它进行排序,所以它看起来像这样:

array(4) {
  [32]=>
  string(1) "1"
  [33]=>
  string(1) "0"
  [34]=>
  string(1) "2"
  [35]=>
  string(1) "1"
}

我尝试使用sort($votes);但这似乎删除了索引,之后我的数组看起来像这样:

array(4) {
  [0]=>
  string(1) "0"
  [1]=>
  string(1) "1"
  [2]=>
  string(1) "1"
  [3]=>
  string(1) "2"
}

那么排序这个数组的最佳方法是什么,以便索引仍然相同,但排序?

4 个答案:

答案 0 :(得分:13)

您想使用ksort(),它按键对数组进行排序。

  

ksort

     

按键对数组进行排序,保持数据关联的关键。这是   主要用于关联数组。

答案 1 :(得分:1)

有关PHP中数组排序函数的简要概述,请参阅PHP手册中的Sorting Arrays

答案 2 :(得分:0)

使用ksort($votes);

输出将是

array(4) {
  [32]=>
  string(1) "1"
  [33]=>
  string(1) "0"
  [34]=>
  string(1) "2"
  [35]=>
  string(1) "1"
}

有关详情,请查看this

答案 3 :(得分:0)

https://www.php.net/manual/en/function.asort.php

这看起来像是您要搜索的

这将对数组进行排序并保留现有索引

array(4) {
  [33]=>
  string(1) "0"
  [32]=>
  string(1) "1"
  [35]=>
  string(1) "1"
  [34]=>
  string(1) "2"
}