配列の追加と結合
配列とは、複数の値を、1つの値の集合体として管理するもの。
そして、軍隊のように規律がある。
値それぞれに自動的に「番号」が割り当てられるただの配列と
番号ではなく、コードネーム(名前)が割り当てられる連想配列がある。
書き方
変数名はできるだけ複数形にしよう!!
■配列
$fruits = ['りんご', 'みかん', 'バナナ'];
■連想配列
$fruits = ['apple' => 'りんご', 'orange' => 'みかん', 'banana' => 'バナナ'];
あれ?番号は?と思うが、配列の番号は自動で割り当てられるので省略されている。
要は 'りんご' は、 1 => 'りんご' と同じである。
値の呼び出し
■配列
$fruits = ['りんご', 'みかん', 'バナナ'];
echo $fruits[2]; // みかん
■連想配列
$fruits = ['apple' => 'りんご', 'orange' => 'みかん', 'banana' => 'バナナ'];
echo $fruits['orange']; // みかん
要素を配列の最後に追加
1つだけ追加したい
■配列の場合
$fruits[] = 'ぶどう';
■連想配列の場合
$fruits['grape'] = 'ぶどう';
複数の値を同時に追加したい(便利!!)
■配列の場合
array_push($fruits,'ドリアン', 'パイン');
print_r($fruits);
↓
Array ( [0] => りんご [1] => みかん [2] => バナナ [3] => ドリアン [4] => パイン )
要素を配列の最初に追加
$fruits配列の先頭にドリアンとパインを追加したい!
array_unshift( 対象の配列 , 先頭に入れたい値 );
↓
array_unshift($fruits,'ドリアン', 'パイン');
print_r($fruits);
※2行目を$fruitsや別の変数名に代入すると処理結果が5で数値になる
↓
Array ( [0] => ドリアン [1] => パイン [2] => りんご [3] => みかん [4] => バナナ )
※補足※
■array_pushとarray_unshiftは、「キー」を追加できない
つまり、連想配列に追加される場合は [0]=>値 の状態で追加される。
連想配列にキーを含めて追加したい場合は下の結合を参照。
配列同士の結合(意外と便利??)
配列の後ろに別の配列を追加したい場合。
array_merge( 対象の配列 , array ( 配列か連想配列 ) );
パターン1
$fruits = ['りんご', 'みかん', 'バナナ'];
$fruits = array_merge($fruits, array('ドリアン', 'パイン'));
//配列を追加OK
パターン2
$fruits = array_merge($fruits, array('drian'=>'ドリアン', 'pain'=>'パイン'));
//連想配列を追加OK
パターン3
$fruits = ['りんご', 'みかん', 'バナナ']; //配列A
$names = ['中村', '佐藤', '内田']; //配列B
$fruits = array_merge($fruits, $names); //配列の変数を入れてもOK
※注意※
array_mergeは、もと配列に追加ではなく、別の配列データと結合するので新しい別の配列が誕生するイメージ。
そのため、array_merge構文は、必ず変数に代入必須!!!
===========
参照記事(ありがとうございました!!)
===========