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 に答える