php - 如何更改数组的顺序?

标签 php arrays sorting

$a = array(0=>'a',1=>'b',2=>'c', 3=>'d');

我想把顺序改成3,2,0,1:

$a = array(3=>'d',2=>'c',0=>'a', 1=>'b');

最佳答案

如果您想以编程方式更改顺序,请查看各种 array sorting functions in PHP , 特别是

  • uasort()— 使用用户定义的比较函数对数组进行排序并维护索引关联
  • uksort()— 使用用户定义的比较函数按键对数组进行排序
  • usort()— 使用用户定义的比较函数按值对数组进行排序

基于 Yannicks example下面,你可以这样做:

$a = array(0 => 'a', 1 => 'b', 2 => 'c', 3 => 'd');
$b = array(3, 2, 0, 1); // rule indicating new key order
$c = array();
foreach($b as $index) {
    $c[$index] = $a[$index];
}
print_r($c);

会给

Array([3] => d [2] => c [0] => a [1] => b)

但正如我在评论中所说,如果您不告诉我们阵列排序规则或更具体地说明您的需求,我们将无法为您提供更多帮助。

关于php - 如何更改数组的顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2175350/

相关文章:

javascript - 删除具体是如何工作的?

java - 排序列表 <> 未按预期工作

c - 数组检查从 0 到 size-1 的所有整数

json - 在 groovy 中按项目值对 json 字符串进行排序

javascript - 如何使用ajax将值传递到另一个php页面

javascript - 无法从 JavaScript 循环打开 PHP 文件

java - 构造函数超出 65535 字节限制

javascript - 将数组的多个项目映射到单个对象/函数

php - 向所有 json_encode() 数据添加一个通用词

php - 插入到多列的选择中,其中只有一列来自另一个表