PHPに限らず、どんなプログラム言語でも配列を扱うのは必須です。
ですが私は、配列の動きがなんとなくで理解していたため、これまでデバッグしながら力ずくでコーディングしていました。
このままではまずいなと思い、配列の結合が実際どのような動きをしているのか理解するために図にしてみることにしました。
目次
1.結合処理のサンプル(配列+配列)
[0]前提
配列Aに配列Bを結合したらどのような結果になるか、下図を参考にみていきたいと思います。
配列Aの作成
array型で宣言して配列Aをprint_r関数で出力します。
<?php $pref_a = array('北海道','東京都'); print_r($pref_a); ?>
実行結果
Array ( [0] => 北海道 [1] => 東京都 )
配列Bの作成
array型で宣言して配列Bをprint_r関数で出力します。
<?php $pref_b = array('大阪府','福岡県'); print_r($pref_b); ?>
実行結果
Array ( [0] => 大阪府 [1] => 福岡県 )
[1]array_push(配列A,配列B)
まずはarray_push関数で配列を追加した時の動きです。
array_push関数は1つ以上の要素を配列の最後に追加する関数です。
書き方は次のようになります。
array_push(追加先の配列 , 追加する要素 1 [, 追加する要素 2 , ・・・])
array_push関数の実行
配列Aに配列Bをarray_push関数で追加してprint_r関数で出力します。
<?php array_push($pref_a,$pref_b); print_r($pref_a); ?>
実行結果
Array ( [0] => 北海道 [1] => 東京都 [2] => Array ( [0] => 大阪府 [1] => 福岡県 ) )
実行結果のイメージ図
[2]array_merge(配列A,配列B)
続いてarray_merge関数で配列を結合した時の動きです。
array_merge関数はひとつまたは複数の配列を結合する関数です。
書き方は次のようになります。
array_merge(配列 , 追加する配列 1 [, 追加する配列 2 , ・・・])
array_merge関数の実行
配列Aに配列Bをarray_merge関数で結合してprint_r関数で出力します。
<?php print_r(array_merge($pref_a,$pref_b)); ?>
実行結果
Array ( [0] => 北海道 [1] => 東京都 [2] => 大阪府 [3] => 福岡県 )
実行結果のイメージ図
[3]array_merge_recursive(配列A,配列B)
続いてarray_merge_recursive関数で配列を結合した時の動きです。
array_merge_recursive関数は1つ以上の配列を再帰的に結合する関数です。
書き方は次のようになります。
array_merge_recursive(配列 , 追加する配列 1 [, 追加する配列 2 , ・・・])
array_merge_recursive関数の実行
配列Aに配列Bをarray_merge_recursive関数で結合してprint_r関数で出力します。
<?php print_r(array_merge_recursive($pref_a,$pref_b)); ?>
実行結果
Array ( [0] => 北海道 [1] => 東京都 [2] => 大阪府 [3] => 福岡県 )
実行結果のイメージ図
2.結合処理のサンプル(配列+配列以外)
[0]前提
先ほどは配列同士を結合した場合でしたが、配列以外の型(stringやintなど)を結合した場合はどのような結果になるか、下図を参考にみていきたいと思います。
データCの作成
string(文字列)型で宣言してデータCをprint_r関数で出力します。
<?php $pref_c = '大阪府'; print_r($pref_c); ?>
実行結果
大阪府
[1]array_push(配列A,データC)
ここでもう一度array_push関数です。
先ほどは配列の後ろに別の配列を追加していましたが、今回は配列の後に配列以外の型(今回は文字列型)を追加した場合の動きをみたいと思います。
array_push関数の実行
配列Aに文字列型Cをarray_push関数で結合してprint_r関数で出力します。
<?php array_push($pref_a,$pref_c); print_r($pref_a); ?>
実行結果
Array ( [0] => 北海道 [1] => 東京都 [2] => 大阪府 )
実行結果のイメージ図
3.まとめ
いかがでしたでしょうか。
今回は通常の配列を結合した結果を図にしてみました。
私のようにソースを見て理解できなかった方は、今回の図で配列の結合の動きを理解できたのではないでしょうか。
次は連想配列を結合した結果を図にした記事を書いてみたいと思います。