配列の追加と結合

配列とは、複数の値を、1つの値の集合体として管理するもの。

そして、軍隊のように規律がある。

 

値それぞれに自動的に「番号」が割り当てられるただの配列

番号ではなく、コードネーム(名前)が割り当てられる連想配列がある。

f:id:aruku-hito:20191115223658p:plain

TECHACADEMYさんから拝借しました。

 

書き方

変数名はできるだけ複数形にしよう!!

■配列

$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構文は、必ず変数に代入必須!!!

 

===========

 参照記事(ありがとうございました!!)

www.flatflag.nir87.com

 ===========