$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/