PHP 配列の先頭の要素を取り出す(array_shift)
PHPで、配列の先頭要素を取得したい。取得後、配列からはその要素を削除したい。
要するに、配列をFIFOなキューっぽく使いたいのです。
array_shift
ちゃんと関数が用意されています。
array_shift
サンプルを実行してみます。
- <?php
- $stack = array("orange", "banana", "apple", "raspberry");
- echo array_shift($stack);
- echo PHP_EOL;
- var_export($stack);
- echo PHP_EOL;
array_shiftにより最初の要素「orange」がとり出され、配列からは削除されています。
$ php sample.php
orange
array (
0 => 'banana',
1 => 'apple',
2 => 'raspberry',
)
取り出し続けたら
もう要素が存在しない配列に対してarray_shiftしたらどうなるか。
- <?php
- $stack = array("orange");
- echo '1'.PHP_EOL;
- echo array_shift($stack);
- echo PHP_EOL;
- echo '2'.PHP_EOL;
- echo array_shift($stack);
- echo PHP_EOL;
- echo '3'.PHP_EOL;
- echo array_shift($stack);
- echo PHP_EOL;
- if (array_shift($stack) === NULL) {
- echo 'null value'.PHP_EOL;
- }
マニュアルにも記載がありますが、NULLが返却されます。
$ php sample.php
1
orange
2
3
null value
配列の配列を引数に渡したら
- <?php
- $stack = array(
- 'key' => array(
- "orange", "banana", "apple", "raspberry"
- )
- );
- echo array_shift($stack['key']);
- echo PHP_EOL;
- var_export($stack['key']);
- echo PHP_EOL;
ちゃんと要素から削除されていますね。
$ php sample.php
orange
array (
0 => 'banana',
1 => 'apple',
2 => 'raspberry',
)
- 関連記事
コメント