phpで配列の先頭に追加(キー保持)する方法

phpで配列の先頭に要素を追加する方法は、いくつかあります。

その1。関数「array_unshift」

機能: 一つ以上の要素を配列の最初に加える

array_unshift ( array &$array [, mixed $… ] ) : int

使用例

$itemA = array('1'=>'犬',                                                                      
                 '3'=>'猿',                                                        
                 '4'=>'キジ'); 
var_dump($itemA);
$itemB = array(''=>'選んでください','0'=>'桃太郎'); 
 
array_unshift($itemB,$itemA);

結果

array (size=3)   
1 => string '犬' (length=3)
3 => string '猿' (length=3)
4 => string 'キジ' (length=6)

注意!

ただしこの関数、 配列の数値添字はすべて新たにゼロから振りなおされます!文字列のキーはもちろんそのままですが。
これって普通の場合はいいんですけど、その配列が欠番の数字を含む数値添字の配列だったりすると、値がガタガタになってしまいます。

その2 関数「array_merge」

機能: ひとつまたは複数の配列をマージする

 array_merge ( array $array1 [, array $... ] ) : array

使用例

$itemA = array('1'=>'犬',                                                                      
                 '3'=>'猿',                                                        
                 '4'=>'キジ'); 
var_dump($itemA);

結果

array (size=3)   
1 => string '犬' (length=3)
3 => string '猿' (length=3)
4 => string 'キジ' (length=6)

あらかじめ配列を別に用意しておいて、2つの引数でまとめます。これで、先に指定する配列が先頭に来ます。

ただしこれも、array\unshiftと同じく、数値添字が振り直されてしまうので、困る場合は困ります。

その3 + でくっつける

表題の件「phpで配列の先頭に追加(キー保持)する方法」を「数値添字キーを保持」という条件だと、これが解答になります。

2と同様、あらかじめ配列を作っておいて、+ で演算処理します。

$items = $itemA + $itemB;

結果



広告

About: dacelo


Leave a Reply

Your email address will not be published. Required fields are marked *