Dreamweaver TechniqueJAVA Script サンプル | CSS sample | JAVA Applet sample | Flash Sample
HTML4.0 reference | DynamicHTMLXHTML | XML sample | XSLT sample | RIKO's ASP Trial
ASP ADO リファレンス | PHP関数リファレンス | MySQL関数リファレンス

複数の配列を一つの配列に合成する

■ 複数の配列を一つの配列に合成する

array_merge関数は、a複数の配列をマージして一つの配列にまとめる働きをします。

配列 = array_intersec (配列1, 配列2, [・・・・・・・])

配列の添字(インデックス)は保持されず、前の配列の後に次の配列の要素が追加されますが、複数の配列に同一の文字列キーがある場合は、前の配列の値が後の配列の値で上書きされてしまいますので注意が必要です。
同一の文字列キーを持つ要素を上書きしたくない場合、array_merge_recursive関数を使います、

配列 = array_merge_recursive(配列1, 配列2,[・・・・・・・])

array_merge_recursive関数では、同一の文字列キーをもつ要素があった場合でも値を上書きせず、多次元配列としてそれぞれの値を保持します。
たとえば、次のよな配列をマージしてみます。

$a = array("a0", "a1", "x" => "a2");
$b = array("b0", "b1", "x" => "b2");

array_merge関数を使うと、文字列キー「x」を持つ要素が上書きされてしまいます。

$c = array_merge($a, $b);
// $c[0] = "a0";
// $c[1] = "a1";
// $c[x] = "b2";
// $c[2] = "b0";
// $c[3] = "b1" となる

他方array_merge_recursive関数を使うと、次のように多次元配列になります。

$c = array_merge_recursive($a, $b);
// $c[0] = "a0";
// $c[1] = "a1";
// $c["x"][0] = "a2";
// $c["x"][1] = "b2";
// $c[2] = "b0";
// $c[3] = "b1" となる

また、配列の添字(インデックス)を保持したまま配列をマージしたい場合は、「+」演算子を使います

$a = array(1, 2, 3);
$b = array(4, 5, 6, 7, 8);
$c =$a + $b;
// $c[0] =1
// $c[1] = 2
// $c[2] = 3
// $c[3] = 7
// $c[4] = 8 となる

配列のマージについて表にまとめておきますので、参考にしてください

配列のマージ
  添字(インデックス)の場合 文字列キーの場合
array_merge関数 前の配列の後ろに追加 後の配列の値で上書き
array_merge_recursive関数 前の配列の後ろに追加 多次元配列としてすべての値を保持
+演算子 前の配列の値を保持 前の配列の値を保持

 

 

<?php
   $a = array("a"=>"foo", "b"=>"boo", "c"=>1, "d"=>2, "e"=>3);
   $b = array("a"=>"foo", "b"=>"woo",
   "c"=>array(2, 4, 6), "d"=>5, "e"=>7);
   $c = array_merge($a, $b);
   $d = array_merge_recursive($a, $b);
   $e = array(1, 2, 3);
   $f = array(4, 5, 6, 7, 8, 9);
   $g = $e + $f;

   header("Content-Type: text/plain; charset=EUC-JP");
   echo "[array_merge]\n";
   print_r($c);
   echo "\n";

   echo "[array_merge_recrusive]\n";
   print_r($d);
   echo "\n";

   echo "[+演算子]\n";
   print_r($g);
?>

<戻る

R HOUSE | RIKO's Trial Page | Shirley's Pettit Case | Shirley's i-box | Shirley's little box

PC用眼鏡【管理人も使ってますがマジで疲れません】 解約手数料0円【あしたでんき】 Yahoo 楽天 NTT-X Store

無料ホームページ 無料のクレジットカード 海外格安航空券 ふるさと納税 海外旅行保険が無料! 海外ホテル