[PHP]連想配列の先頭に要素を追加するには?

PHP

どうも、ちょげ(@chogetarou)です。

連想配列の先頭に要素を追加する方法を紹介します。

スポンサーリンク

方法

連想配列の先頭に要素を追加する方法は、2つあります。

「+」演算子

ひとつは、「+」演算子を使う方法です。

具体的には、「+」の左辺に追加する要素を持つ連想配列、右辺に対象の連想配列を指定します。

//key=追加する要素のキー、value=追加する要素の値, arr=対象の配列
$result = [key => value] + $arr;

上記の「+」は、右辺の連想配列の先頭に左辺の配列の要素を追加した連想配列を生成します。

[]ではなく、array()を使う場合は、以下のようになります。

//array()を使った場合
$result = array(key => value) + $arr;

使用例

<?php
$numbers = ['one' => 1, 'two' => 2, 'three' => 3];

$result = ['zero' => 0] + $numbers;

print_r($result);
?>
出力:
Array
(
    [zero] => 0
    [one] => 1
    [two] => 2
    [three] => 3
)

array_merge()

もうひとつは、array_merge()を使う方法です。

まず、array_merge()を呼び出します。

そして、array_merge()の第1引数に追加する要素を持つ連想配列、第2引数に追加先の連想配列を指定します。

//key=追加する要素のキー、value=追加する要素の値, arr=対象の配列
$result = array_merge([key => value], $arr);

上記のarray_merge()は、第2引数の連想配列の先頭に、第1引数の配列の要素を追加した連想配列を生成します。

[]ではなく、array()を使う場合は、以下のようになります。

//array()を使った場合
$result = array_merge(array(key => value), $arr);

使用例

<?php
$numbers = ['one' => 1, 'two' => 2, 'three' => 3];

$result = array_merge(['zero' => 0], $numbers);

print_r($result);
?>
出力:
Array
(
    [zero] => 0
    [one] => 1
    [two] => 2
    [three] => 3
)

まとめ

連想配列の先頭に要素を追加する方法は、次の2つです。

  • 「+」演算子を使う方法
    $result = [key => value] + $arr;
  • array_merge()を使う方法
    $result = array_merge([key => value], $arr);

コメント

タイトルとURLをコピーしました