如何在asort()
后将元素添加到开头数组 使用保留键?
$array = array(
564 => "plum",
123 => "apple",
543 => "lemon",
321 => "cherry",
);
asort($array);
$array[0]="all";
print_r($array);
我得到,键 [0] 的索引不在开头
Array(
[123] => apple
[321] => cherry
[543] => lemon
[564] => plum
[0] => all )
需要
Array(
[0] => all
[123] => apple
[321] => cherry
[543] => lemon
[564] => plum)
对数组进行排序后,使用 array_unshift()
将元素附加到数组的开头。
array_unshift($arr, 'all')
更新:
请注意,array_unshift()
将修改所有数字键。若要保留密钥,请使用 +
运算符。
asort($array);
$array = array('all') + $array;
print_r($array);
/*
Array
(
[0] => all
[123] => apple
[321] => cherry
[543] => lemon
[564] => plum
)
*/
$array = array(
564 => "plum",
123 => "apple",
543 => "lemon",
321 => "cherry",
);
$array[0]="all";
uasort($array, function($a, $b) {
if ($a === 'all') return -1;
return strcmp($a, $b);
});
print_r($array);
在向
数组中添加值后调用asort()
。如果您可以保证需要添加的项目已经按相反的顺序排列,并且始终位于数组中已有的项目之前,则可以使用 $array = array($newitem) + $array
.
$array = array(
564 => "plum",
123 => "apple",
543 => "lemon",
321 => "cherry",
);
$array[0]="all";
asort($array);
print_r($array);
输出:
Array
(
[0] => all
[123] => apple
[321] => cherry
[543] => lemon
[564] => plum
)
这在添加不在 apple
之前的项目时也有效。