気軽に読めるPHP入門書・PHPスクリプトが動かないときの原因と対策などを紹介します。

  1. PHP関数
  2. 22 view

array_mergeによる配列結合で数値インデックスが変わってしまうとき

2つ以上の配列を結合する関数にarray_mergeがありますが、この関数では結合する配列の数値インデックスを0から始まるように新たに割り当てる仕様になっています。

PHPマニュアル:array_merge

結合する配列で明示的に数値インデックスが指定されている場合、意図しない値に変わってしまう場合があるので注意が必要です。

<?php
$ar1 = array("1"=>"鈴木", "2"=>"田中");
$ar2 = array("3"=>"高橋", "4"=>"小林");
print_r(array_merge($ar1, $ar2));
?>

上記の配列では1から始まる数値インデックスが明示的に指定されていますが実行後は0から始まる連番が新たに割り振られています。

○実行結果

Array ( [0] => 鈴木 [1] => 田中 [2] => 高橋 [3] => 小林 ) 
文字のインデックスは保持されますが、同じインデックスは上書きされます。
array_merge関数と配列結合演算子「+」による重複キーの扱いの違い

数値インデックスを維持したまま配列を結合する場合は配列結合演算子「+」を使います。

<?php
$ar1 = array("1"=>"鈴木", "2"=>"田中");
$ar2 = array("3"=>"高橋", "4"=>"小林");
print_r($ar1 + $ar2);
?>

○実行結果

Array ( [1] => 鈴木 [2] => 田中 [3] => 高橋 [4] => 小林 ) 

PHP関数の最近記事

  1. mb_send_mail関数でReturn-Pathを設定する方法

  2. is_numeric関数とis_int関数の違い

  3. PHPのdate関数の使用例

  4. isset関数とempty関数と「!」の違い

  5. 文字列を分割して配列を作成するexplode関数

関連記事

PAGE TOP