・IT/Web系エンジニアの経験者の方
・どこの転職エージェントを利用しようか迷っている方
それなら、キッカケエージェントにご相談!
キッカケエージェントでは、少数精鋭のエージェントが、エンジニアの経験やスキル、志向性などをカウンセリングし、的確なアドバイスを提供します!
また、徹底した企業へのヒアリングにより、最適なマッチングを実現し、今では内定率が一般的なエージェントの2倍以上となっています!
転職エージェントに迷っている方、まずは無料でキャリア相談から!
(この記事は2022年7月07日に投稿されました。)
PHPで配列の先頭の要素を抜き出す関数として、array_shift()があります。
array_shift()とは指定した配列の先頭要素を抜き出す関数になります。
例えば、[‘A’,’B’,’C’]という配列にarray_shift()を使用すると、「A」のように一番左にある要素を返り値として返されるようになります。
そのため、抜き出された後の配列の要素は前にずれるようになります。
そして、for文と組み合わせて使用することで、配列の先頭要素を繰り返して抜き出すことができます。
また、array_shift()は、連想配列の先頭要素としてキーや値の先頭を抜き出すこともできます。
今回はPHPのarray_shift()で配列の先頭の要素を抜き出す方法について紹介していきます。
array_shift()とは
冒頭でも言いましたが、array_shift()とは、配列の先頭の要素を抜き出す関数となります。
例えば[‘aaa’, ‘bbb’]の配列に対して、array_shift()を使用すると「aaa」が取り出されるように、先頭の要素を返り値として返すようになります。
そのため、array_shift()を使用した配列は要素が1つ分だけ短くなり、全ての要素は前にずれるようになります。
array_shift()の書き方
array_shift()は下記のように記述します。
1 | <?php array_shift('要素を抜き出したい配列'); ?> |
array_shift()は1つのパラメータを指定することで、使用することができます。
array_shift()のパラメータ
array_shift()のパラメータは下記のようになります。
- 要素を抜き出したい配列(必須):
先頭の要素を抜き出したい配列を指定する
array_shift()は必須なパラメータとして、「要素を抜き出したい配列」を指定します。
array_shift()で配列の先頭から要素を抜き出すサンプルコード
array_shift()で配列の先頭から要素を抜き出すサンプルコードをご紹介します。
ここでは下記の2つの場合でarray_shift()を使用してみます。
- 配列に要素が存在する場合
- 配列に要素が存在しない場合
配列に要素が存在する場合
配列に要素が存在する場合にarray_shift()を使用してみます。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 10 11 12 | <?php echo '⚫︎ 対象の配列'; $fruits = ['オレンジ','りんご','もも', 'いちご']; var_dump($fruits); echo '・array_shift()で先頭要素を取り出す'; $fruits_val = array_shift($fruits); echo $fruits_val; echo '・array_shift()使用後'; var_dump($fruits); ?> |
実行結果
配列に要素が存在する場合にarray_shift()を使用すると、配列の先頭要素が取り出されるようになります。
配列に要素が存在しない場合
配列に要素が存在しない場合にarray_shift()を使用してみます。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 10 11 12 | <?php echo '⚫︎ 対象の配列'; $fruits = []; var_dump($fruits); echo '・array_shift()で先頭要素を取り出す'; $fruits_val = array_shift($fruits); echo $fruits_val; echo '・array_shift()使用後'; var_dump($fruits); ?> |
実行結果
配列に要素が存在しない場合にarray_shift()を使用すると、NULLが返されるようになります。
多次元配列の先頭から要素を抜き出すサンプルコード
array_shift()で多次元配列の先頭から要素を抜き出すサンプルコードをご紹介します。
ここでは下記の2つの場合でarray_shift()を使用してみます。
- 2次元配列の要素を先頭から抜き出す場合
- 3次元配列の要素を先頭から抜き出す場合
2次元配列の要素を先頭から抜き出す場合
2次元配列の要素を先頭から抜き出す場合にarray_shift()を使用してみます。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <?php echo '⚫︎対象の配列'; $fruits = [ ['オレンジ','りんご','ピーチ','ぶどう'], ['パイナップル','メロン','スイカ','マンゴー'], ]; var_dump($fruits); echo '・array_shift()で1次元配列の先頭要素を取り出す'; $fruits_val1 = array_shift($fruits[0]); echo $fruits_val1; echo '・array_shift()使用後1'; var_dump($fruits); echo '・array_shift()で2次元配列の先頭要素を取り出す'; $fruits_val2 = array_shift($fruits); var_dump($fruits_val2); echo '・array_shift()使用後2'; var_dump($fruits); ?> |
実行結果
array_shift()によって、2次元配列の先頭要素をが取り出されています。
また、配列の変数名の後ろにインデックスを1つ指定することで2次元配列内にある1次元配列の先頭要素を取り出すことができます。
3次元配列の要素を先頭から抜き出す場合
3次元配列の要素を先頭から抜き出す場合にarray_shift()を使用してみます。
⚫︎ 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 | <?php echo '⚫︎対象の配列'; $fruits = [ [['オレンジ','りんご','ピーチ','ぶどう'],['パイナップル','メロン','スイカ','マンゴー']], [['orange','apple','peach','grape'],['pineapple','melon','watermelon',' mango']] ]; var_dump($fruits); echo '・array_shift()で1次元配列の先頭要素を取り出す'; $fruits_val1 = array_shift($fruits[1][1]); echo $fruits_val1; echo '・array_shift()使用後1'; var_dump($fruits); $fruits_val2 = array_shift($fruits[1]); echo '・array_shift()で2次元配列の先頭要素を取り出す'; var_dump($fruits_val2); echo '・array_shift()使用後2'; var_dump($fruits); echo '・array_shift()で3次元配列の先頭要素を取り出す'; $fruits_val3 = array_shift($fruits); var_dump($fruits_val3); echo '・array_shift()使用後3'; var_dump($fruits); ?> |
実行結果
array_shift()によって、3次元配列の先頭要素が取り出されています。
また、配列の変数名の後ろにインデックスを2つ指定することで3次元配列内にある1次元配列の先頭要素を、インデックスを1つ指定することで3次元配列内にある2次元配列の先頭要素を取り出すことができます。
配列の先頭要素を繰り返して抜き出す場合
配列の先頭要素を繰り返して抜き出す場合は、for文の中でarray_shift()を使用します。
⚫︎ 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 35 36 37 38 39 40 41 | <?php echo '⚫︎ 対象の配列-1'; $fruits1 = ['オレンジ','りんご','もも', 'いちご']; var_dump($fruits); echo '・for()文でarray_shift()で先頭要素を全て取り出す-1'; $fruits1_cnt = count($fruits1); for($i = 0; $i < $fruits1_cnt; $i++) { $fruits1_val = array_shift($fruits1); echo $fruits1_val; echo "\n"; } echo '・array_shift()使用後-1'; var_dump($fruits1); echo '⚫︎ 対象の配列-2'; $fruits2 = [ ['オレンジ','りんご','ピーチ','ぶどう'], ['パイナップル','メロン','スイカ','マンゴー'], ]; var_dump($fruits2); // 2次元配列の要素カウント $fruits2_cnt2 = count($fruits2); // 1次元配列の要素カウント for($i = 0; $i < $fruits2_cnt2; $i++) { $fruits2_cnt1 = count($fruits2[$i]); } echo '・for()文でarray_shift()で先頭要素を全て取り出す-2'; for($i = 0; $i < $fruits2_cnt2; $i++) { for($j = 0; $j < $fruits2_cnt1; $j++) { $fruits2_val = array_shift($fruits2[$i]); echo $fruits2_val; echo "\n"; } } echo '・array_shift()使用後-2'; var_dump($fruits2); ?> |
実行結果
for文の中にarray_shift()を使用することで、配列の先頭要素を繰り返して取り出すことができます。
また、for文の中にfor文を使用することで、多次元配列の先頭要素を繰り返して取り出すことができます。
連想配列の先頭から要素を抜き出すサンプルコード
array_shift()で連想配列の先頭から要素を抜き出すサンプルコードをご紹介します。
ここでは下記の2つの場合で、array_shift()を使用してみます。
- 連想配列の先頭の値から要素を抜き出す場合
- 連想配列の先頭のキーから要素を抜き出す場合
連想配列の先頭の値から要素を抜き出す場合
連想配列の先頭の値から要素を抜き出す場合にarray_shift()を使用してみます。
⚫︎ 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 | <?php echo '⚫︎対象の連想配列'; $fruits = [ 'オレンジ' => 'orange', 'りんご' => 'apple', 'もも' => 'peach', 'いちご' => 'strawberry' ]; var_dump($fruits); echo '・array_shift()で先頭の値を取り出す'; $fruits_val1 = array_shift($fruits); echo $fruits_val1; echo '・array_shift()使用後'; var_dump($fruits); echo '・array_shift()で先頭の値を全て取り出す'; $fruits_cnt = count($fruits); for($i = 0; $i < $fruits_cnt; $i++) { $fruits_val2 = array_shift($fruits); echo $fruits_val2; echo "\n"; } echo '・array_shift()使用後'; var_dump($fruits); ?> |
実行結果
array_shift()によって連想配列の先頭要素の値を取り出すことができます。
また、for文を使用することで、連想配列の先頭要素の値を繰り返して取り出すこともできます。
連想配列の先頭のキーから要素を抜き出す場合
連想配列の先頭のキーから要素を抜き出す場合にarray_shift()を使用してみます。
⚫︎ 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 | <?php echo '⚫︎対象の連想配列'; $fruits = [ 'オレンジ' => 'orange', 'りんご' => 'apple', 'もも' => 'peach', 'いちご' => 'strawberry' ]; var_dump($fruits); echo '・array_shift()で先頭キーを取り出す'; $fruits_keys = array_keys($fruits); $fruits_key1 = array_shift($fruits_keys); echo $fruits_key1; echo '・array_shift()使用後'; var_dump($fruits_keys); echo '・array_shift()で先頭キーを全て取り出す'; $fruits_keys_cnt = count($fruits_keys); for($i = 0; $i < $fruits_keys_cnt; $i++) { $fruits_key2 = array_shift($fruits_keys); echo $fruits_key2; echo "\n"; } echo '・array_shift()使用後'; var_dump($fruits_keys); ?> |
実行結果
array_keys()によって連想配列のキーを取り出しています。
そして、array_shift()によって連想配列の先頭要素のキーである「オンレジ」を取り出しています。
また、for文を使用することで、連想配列の先頭要素のキーを繰り返して取り出すこともできます。
もし、array_keys()について詳しく知りたい場合は下記の記事をご参考ください。
配列の末尾から要素を抜き出す場合
配列の末尾から要素を抜き出す場合は、array_pop()を使用します。
array_pop()とは、指定した配列の末尾を抜き出す関数となります。
そのため、今回紹介しているarray_shift()とは対になる関数になります。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 10 11 12 | <?php echo '⚫︎対象の配列'; $fruits = ['オレンジ','りんご','もも', 'いちご']; var_dump($fruits); echo '・array_pop()で先頭要素を取り出す'; $fruits_val = array_pop($fruits); echo $fruits_val; echo '・array_pop()使用後'; var_dump($fruits); ?> |
実行結果
array_pop()によって指定した配列の末尾から要素を取り出すことができます。
そのため、配列の中にある「いちご」が取り出されています。
もし、array_pop()について詳しく知りたい場合は下記の記事をご参考ください。
配列の先頭に要素を追加する場合
配列の先頭に要素を追加する場合は、array_unshift()を使用します。
array_unshift()とは、指定した配列の先頭に要素を追加する関数となります。
⚫︎ index.php
1 2 3 4 5 6 7 8 9 | <?php echo '⚫︎ 対象の配列'; $fruits = ['オレンジ','りんご','もも', 'いちご']; var_dump($fruits); echo '・ array_unshift()使用後'; array_unshift($fruits, 'キウイ'); var_dump($fruits); ?> |
実行結果
array_unshift()によって指定した配列の先頭に要素を追加することができます。
そのため、「キウイ」が先頭に追加されています。
まとめ
⚫︎ array_shift()とは、配列の先頭要素を抜き出す関数である
⚫︎ array_shift()を使用するには1つのパラメータを指定する
・ 要素を抜き出したい配列(必須)
⚫︎ 配列に要素が存在する場合にarray_shift()を使用すると、配列の先頭要素が取り出される
⚫︎ 配列に要素が存在しない場合にarray_shift()を使用すると、何も取り出されずにNULLが返される
⚫︎ array_shift()は、多次元配列の先頭要素を取り出すことができる
⚫︎ array_shift()とfor文を組み合わせて使用することで、配列の先頭要素を繰り返して抜き出すことができる
⚫︎ array_shift()は、連想配列の先頭から要素を抜き出すことができる
(値やキーから先頭要素を抜き出すことが可能)
⚫︎ 配列の末尾から要素を抜き出す場合は、array_pop()を使用する
⚫︎ 配列の先頭に要素を追加する場合は、array_unshift()を使用する