0

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)
4

3 回答 3

3

对数组进行排序后,使用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
)
*/
于 2012-05-29T08:50:06.623 回答
1
$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);
于 2012-05-29T08:52:46.047 回答
0

在向数组添加值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的项目。

于 2012-05-29T08:53:04.173 回答