PHP 配列の先頭の要素を取り出す(array_shift)

PHPで、配列の先頭要素を取得したい。
取得後、配列からはその要素を削除したい。

要するに、配列をFIFOなキューっぽく使いたいのです。


array_shift



ちゃんと関数が用意されています。
array_shift


サンプルを実行してみます。


  1. <?php
  2. $stack = array("orange", "banana", "apple", "raspberry");
  3. echo array_shift($stack);
  4. echo PHP_EOL;
  5. var_export($stack);
  6. echo PHP_EOL;





array_shiftにより最初の要素「orange」がとり出され、配列からは削除されています。


$ php sample.php
orange
array (
0 => 'banana',
1 => 'apple',
2 => 'raspberry',
)






取り出し続けたら



もう要素が存在しない配列に対してarray_shiftしたらどうなるか。


  1. <?php
  2. $stack = array("orange");
  3. echo '1'.PHP_EOL;
  4. echo array_shift($stack);
  5. echo PHP_EOL;
  6. echo '2'.PHP_EOL;
  7. echo array_shift($stack);
  8. echo PHP_EOL;
  9. echo '3'.PHP_EOL;
  10. echo array_shift($stack);
  11. echo PHP_EOL;
  12. if (array_shift($stack) === NULL) {
  13.     echo 'null value'.PHP_EOL;
  14. }




マニュアルにも記載がありますが、NULLが返却されます。


$ php sample.php
1
orange
2

3

null value






配列の配列を引数に渡したら




  1. <?php
  2. $stack = array(
  3.     'key' => array(
  4.         "orange", "banana", "apple", "raspberry"
  5.     )
  6. );
  7. echo array_shift($stack['key']);
  8. echo PHP_EOL;
  9. var_export($stack['key']);
  10. echo PHP_EOL;




ちゃんと要素から削除されていますね。


$ php sample.php
orange
array (
0 => 'banana',
1 => 'apple',
2 => 'raspberry',
)



関連記事

コメント

プロフィール

Author:symfo
blog形式だと探しにくいので、まとめサイト作成中です。
https://symfo.web.fc2.com/

PR

検索フォーム

月別アーカイブ