Symfoware

Symfowareについての考察blog

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',
)



関連記事

テーマ:プログラミング - ジャンル:コンピュータ

  1. 2016/03/24(木) 22:24:41|
  2. PHP
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<Play Framework 2.5.0をUbuntu 14.04 + OpenJDKで動かす | ホーム | rubyXL Rubyでエクセルファイル(xlsx)を生成>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://symfoware.blog68.fc2.com/tb.php/1869-cdde7978
この記事にトラックバックする(FC2ブログユーザー)