・IT/Web系エンジニアの経験者の方
・どこの転職エージェントを利用しようか迷っている方
それなら、キッカケエージェントにご相談!
キッカケエージェントでは、少数精鋭のエージェントが、エンジニアの経験やスキル、志向性などをカウンセリングし、的確なアドバイスを提供します!
また、徹底した企業へのヒアリングにより、最適なマッチングを実現し、今では内定率が一般的なエージェントの2倍以上となっています!
転職エージェントに迷っている方、まずは無料でキャリア相談から!
(この記事は2022年7月31日に投稿されました。)
PHPで配列に要素を追加する関数として、array_unshift()があります。
array_unshift()とは配列の先頭に要素を追加する関数になります。
例えば、「[‘a’,’b’,’c’]」という配列にarray_unshift()を使って「d」という値を追加したとします。
すると、「[‘d’,’a’,’b’,’c’]」のように一番左に指定した値が要素として追加されるようになります。
そして、array_unshift()は連想配列の先頭にも要素を追加することができます。
しかし、キーを設定することはできませんので注意してください。
また、2次元配列や3次元配列のような多次元配列でもarray_unshift()を使用することで、それぞれの配列の先頭に要素を追加することができます。
今回はPHPのarray_unshift()で配列の先頭に要素を追加する方法について紹介していきます。
array_unshift()とは
array_unshift()とは配列の先頭に要素を追加する関数となります。
先頭に追加することから、配列の一番前に割り込む形のようになります。
しかし、処理後の配列の要素の数を返り値としては返すようになります。
array_unshift()の書き方
array_unshift()の書き方は下記のようになります。
1 | <?php array_unshift('対象の配列', '追加する要素'); ?> |
array_unshift()は必須パラメータである「対象の配列」と「追加する要素」の2つを指定することで使用することができます。
array_unshift()のパラメータ
array_unshift()のパラメータは下記のようになります。
- 対象の配列(必須)
追加される対象の配列を指定する - 追加する要素(必須)
配列に追加するための要素を指定する
1つ目のパラメータである「対象の配列」は要素を追加される配列を指定します。
そして、2つ目のパラメータである「追加する要素」は配列に追加する要素を指定します。
array_unshift()で配列に要素を追加するサンプルコード
array_unshift()で配列に要素を追加するサンプルコードをご紹介します。
ここでは下記の2つの場合でarray_unshift()を使用してみます。
- 配列に要素が存在する場合
- 配列に要素が存在しない場合
- 配列に重複する要素が存在する場合
配列に要素が存在する場合
配列に要素が存在する場合にarray_unshift()を使用してみます。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php echo '⚫︎ 追加前の配列'; $vegetable = ['キャベツ', 'ニンジン', 'ダイコン', 'キュウリ']; print_r($vegetable); echo '⚫︎ 追加する値'; $val = 'レタス'; echo $val; echo '⚫︎ array_unshift()使用後'; array_unshift($vegetable, $val); print_r($vegetable); ?> |
実行結果
array_unshift()によって「レタス」が配列の先頭に追加されています。
配列に要素が存在しない場合
配列に要素が存在しない場合にarray_unshift()を使用してみます。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php echo '⚫︎ 追加前の配列'; $vegetable = []; print_r($vegetable); echo '⚫︎ 追加する値'; $val = 'セロリ'; echo $val; echo '⚫︎ array_unshift()使用後'; array_unshift($vegetable, $val); print_r($vegetable); ?> |
実行結果
配列に要素が存在しない場合でも、array_unshift()によって先頭に要素が追加されています。
そのため、「セロリ」が配列の先頭に格納されています。
配列に重複する要素が存在する場合
配列に重複する要素が存在する場合にarray_unshift()を使用してみます。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php echo '⚫︎ 追加前の配列 '; $vegetable = ['キャベツ', 'ニンジン', 'ダイコン', 'キュウリ']; print_r($vegetable); echo '⚫︎ 追加する値'; $val = 'キャベツ'; echo $val; echo '⚫︎ array_unshift()使用後'; array_unshift($vegetable, $val); print_r($vegetable); ?> |
実行結果
配列に重複する要素が存在する場合でも、array_unshift()によって配列の中に値が追加されます。
そのため、「キャベツ」が配列の先頭に格納されています。
array_unshift()でさまざな値を要素として追加してみた
array_unshift()でさまざな値を要素として追加してみましたのでご紹介します。
ここでは、下記の2つの値を要素として追加してみます。
- 配列を要素として追加する場合
- 真偽値を要素として追加する場合
- Nullを要素として追加する場合
配列を要素として追加する場合
array_unshift()で配列を要素として追加してみます。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php echo '⚫︎ 追加前の配列 '; $vegetable = ['キャベツ', 'ニンジン', 'ダイコン', 'キュウリ']; print_r($vegetable); echo '⚫︎ 追加する値'; $vals = ['ケール','パセリ','ブロッコリ']; print_r($vals); echo '⚫︎ array_unshift()使用後'; array_unshift($vegetable, $vals); print_r($vegetable); ?> |
実行結果
array_unshift()によって指定した配列の中に配列が追加されています。
そのため、配列の中に「ケール」と「パセリ」と「ブロッコリ」が配列形式で格納されています。
真偽値を要素として追加する場合
array_unshift()で真偽値を要素として追加してみます。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <?php echo '⚫︎ 追加前の配列 '; $vegetable = ['キャベツ', 'ニンジン', 'ダイコン', 'キュウリ']; print_r($vegetable); echo '⚫︎ 追加する値-1'; $val1 = true; var_dump($val1); echo '⚫︎ array_unshift()使用後-1'; array_unshift($vegetable, $val1); print_r($vegetable); echo '⚫︎ 追加する値-2'; $val2 = false; var_dump($val2); echo '⚫︎ array_unshift()使用後-2'; array_unshift($vegetable, $val2); print_r($vegetable); ?> |
実行結果
array_unshift()で真偽値を要素として追加する場合は、数値に変わって追加されるようになります。
そのため、trueの場合は「1」が、falseの場合は「空の値」が追加されています。
Nullを要素として追加する場合
array_unshift()でNullを要素として追加してみます。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php echo '⚫︎ 追加前の配列 '; $vegetable = ['キャベツ', 'ニンジン', 'ダイコン', 'キュウリ']; print_r($vegetable); echo '⚫︎ 追加する値'; $val = NULL; var_dump($val); echo '⚫︎ array_unshift()使用後'; array_unshift($vegetable, $val1); print_r($vegetable); ?> |
実行結果
array_unshift()でNULLを要素として追加する場合は、「空の値」が追加されるようになります。
array_unshift()で配列の先頭に複数の要素を追加する場合
array_unshift()で配列の先頭に複数の要素を追加するには、3つ目のパラメータ以降に「追加する要素」を指定します。
例えば、一気に2つの値や配列を要素として追加したい場合は下記のようなコードとなります。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <?php echo '⚫︎ 追加前の配列'; $vegetable = ['キャベツ', 'ニンジン', 'ダイコン', 'キュウリ']; print_r($vegetable); echo '⚫︎ 追加する値1'; $val1 = 'トマト'; echo $val1; echo '⚫︎ 追加する値2'; $val2 = 'タマネギ'; echo $val2; echo '⚫︎ 追加する値3'; $val3 = 'ハクサイ'; echo $val3; echo '⚫︎ array_unshift()使用後'; array_unshift($vegetable, $val1, $val2, $val3); print_r($vegetable); ?> |
実行結果
3つ目と4つ目のパラメータに値を指定することで、配列に一気に2つの値が追加されています。
そのため、「トマト」、「タマネギ」、「ハクサイ」の要素が配列の先頭に格納されています。
array_unshift()で多次元配列に要素を追加するサンプルコード
array_unshift()で多次元配列に要素を追加するサンプルコードをご紹介します。
こちらも下記の2つの場合でarray_unshift()を使用してみます。
- 2次元配列に使用する場合
- 3次元配列に使用する場合
2次元配列に使用する場合
2次元配列ににarray_unshift()を使用してみます。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <?php echo '⚫︎ 追加前の配列'; $vegetable = [ ['キャベツ', 'ニンジン', 'ダイコン'], ['キュウリ', 'トマト', 'タマネギ'] ]; print_r($vegetable); echo '⚫︎ 追加する値-1'; $val1 = ['ハクサイ', 'レタス', 'モロヘイヤ']; print_r($val1); echo '⚫︎ array_unshift()使用後-1'; array_unshift($vegetable, $val1); print_r($vegetable); echo '⚫︎ 追加する値-2'; $val2 = 'セロリ'; echo $val2; echo '⚫︎ array_unshift()使用後-2'; array_unshift($vegetable[1], $val2); print_r($vegetable); ?> |
実行結果
array_unshift()によって、2次元配列の先頭に要素が追加されています、
また、配列の変数の後ろにインデックスを1つ指定することで、2次元配列の中にある1次元配列の先頭に要素を追加することができます。
3次元配列に使用する場合
3次元配列にarray_unshift()を使用してみます。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | <?php echo '⚫︎ 追加前の配列'; echo "\n"; $vegetable = [ [['キャベツ', 'ニンジン', 'ダイコン'], [ 'キュウリ', 'トマト', 'タマネギ']], [['ナス', 'ンアスパラガス', 'エダマメ'], [ 'オクラ', 'カボチャ', 'カリフラワー']] ]; print_r($vegetable); echo '⚫︎ 追加する値-1'; $val1 = [['ハクサイ', 'レタス', 'モロヘイヤ'],['クレソン', 'ゴボウ', 'ゴーヤ']]; print_r($val1); echo '⚫︎ array_unshift()使用後-1'; array_unshift($vegetable, $val1); print_r($vegetable); echo '⚫︎ 追加する値-2'; $val2 = ['セロリ','ズッキーニ']; print_r($val2); echo '⚫︎ array_unshift()使用後-2'; array_unshift($vegetable[1], $val2); print_r($vegetable); echo '⚫︎ 追加する値-3'; $val3 = 'ニラ'; print_r($val3); echo '⚫︎ array_unshift()使用後-3'; array_unshift($vegetable[0][1], $val3); print_r($vegetable); ?> |
実行結果
array_unshift()によって、3次元配列の先頭に要素が追加されています、
そして、配列の変数の後ろにインデックスを1つ指定することで、3次元配列の中にある2次元配列の先頭に要素を追加することができます。
さらに、配列の変数の後ろにインデックスを2つ指定することで、3次元配列の中にある1次元配列の先頭に要素を追加することができます。
array_unshift()で連想配列に要素を追加する場合
array_unshift()で連想配列に要素を追加してみます。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <?php echo '⚫︎ 追加前の連想配列 '; $vegetable = [ 'cabbage' => 'キャベツ', 'carrot' => 'ニンジン', 'white radish' => 'ダイコン', 'cucumber' => 'キュウリ' ]; print_r($vegetable); echo '⚫︎ 追加する値'; $val = 'レタス'; echo $val; echo '⚫︎ array_unshift()使用後'; array_unshift($vegetable, $val); print_r($vegetable); ?> |
実行結果
array_unshift()によって、連想配列の先頭に要素が追加されています、
しかし、追加した要素に対してキーを設定することはできません。
配列の末尾に要素を追加する場合
PHPで配列の末尾に要素を追加する場合は、array_push()を使用します。
array_push()とは、指定した配列の末尾に要素を追加する関数となります。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php echo '⚫︎ 追加前の配列 '; $vegetable = ['キャベツ', 'ニンジン', 'ダイコン', 'キュウリ']; print_r($vegetable); echo '⚫︎ 追加する値'; $val = 'レタス'; echo $val; echo '⚫︎ array_push()使用後'; array_push($vegetable, $val); print_r($vegetable); ?> |
実行結果
array_push()によって、配列の末尾に要素を追加しています。
そのため、「レタス」が配列の末尾に格納されています。
もし、array_push()について詳しく知りたい場合は下記の記事をご参考ください。
配列の先頭要素を抜き出す場合
PHPで配列の先頭要素を抜き出す場合は、array_shift()を使用します。
array_shift()とは、指定した配列の先頭要素を取り除く関数となります。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php echo '⚫︎ 追加前の配列 '; $vegetable = ['キャベツ', 'ニンジン', 'ダイコン', 'キュウリ']; print_r($vegetable); echo '⚫︎ 追加する値'; $val = 'レタス'; echo $val; echo '⚫︎ array_push()使用後'; array_push($vegetable, $val); print_r($vegetable); ?> |
実行結果
array_shift()によって指定した配列の先頭要素が取り除かれています。
もし、array_shift()について詳しく知りたい場合は下記の記事をご参考ください。
まとめ
⚫︎ array_unshift()とは配列に要素を追加する関数である
⚫︎ array_unshift()を使用するには2つのパラメータが必須となる
・ 追加したい配列(必須)
・ 追加する要素(必須)
⚫︎ array_unshift()は、配列に要素があってもなくても先頭に要素を追加することができる
⚫︎ array_unshift()は下記のようなさまざな値を要素として先頭に追加することができる
・ 配列を要素として追加する場合
・ 真偽値を要素として追加する場合
(trueの場合は「1」、falseの場合は「空の値」として追加される)
・ Nullを要素として追加する場合
(「空の値」として追加される)
⚫︎ array_unshift()で配列の先頭に複数の要素を追加するには、3つ目のパラメータ以降に「追加したい要素」を指定する
⚫︎ array_unshift()は多次元配列でも要素を追加することができる
⚫︎ array_unshift()は連想配列でも要素を追加することができる
(しかし、キーを設定して追加することはできない)
⚫︎ PHPで配列の末尾に要素を追加する場合は、array_push()を使用する
⚫︎ PHPで配列の先頭要素を取り除く場合は、array_shift()を使用する