PHP入門 配列関数 配列の先頭/末尾に要素を追加/削除する(array_push/array_pop/array_shift/array_unshift関数)
配列に要素を追加/削除するための関数を解説します。
構文:array_push/array_pop/array_shift/array_unshift関数
array_push(array &$array, mixed …$values): int 末尾に追加
array_pop(array &$array): mixed 末尾から除去
array_shift(array &$array, mixed …$values): int 先頭に追加
array_unshift(array &$array): mixed 先頭から除去
&array | 操作対象の配列 |
$values | 追加する要素 |
これらの関数はすべて、引数&$arrayに与えた配列に直接影響を及びします。つまり、引数&$arrayには必ず変数を指定しなければなりません。また、array_push/array_shift関数は戻り値として追加後の要素巣を、array_pop/array_unshift関数は除去した要素の値を返します。
<?php
$data = ['山田', '佐藤', '田中'];
print array_push($data,'工藤','鈴木').'<br>';
print_r($data);
print array_pop($data).'<br>';
print_r($data);
print array_shift($data).'<br>';
print_r($data);
print array_unshift($data,'加治','陣内','権藤').'<br>';
print_r($data);
配列の末尾に単一の湯尾祖を追加する場合は、array_push関数よりブラケット構文を利用するほうが、オーバーヘッドがない分有利です。
スタックキュー
1、スタック(Stack)
スタックとは、後入れ先出し(LIFO:Last in First Out)または先入れ後出し(FILO:First In Last Out)と呼ばれる構造のことです。例えば、アプリケーションでよくあるUndo機能では、操作履歴を保存し、最後に行った操作から順に取り出す、このような操作に使われるのがスタックです。
このようなスタック構造は、array_push関数(ブラケット構文)とarray_pop関数によって表現可能です。
<?php
$data = [];
array_push($data, 10);
array_push($data, 15);
array_push($data, 30);
print_r($data);
print(array_pop($data).'<br>');
print_r($data);
2、キュー(Queue)
キュー(Queue)は、先入れ先出し(FIFO:First In First Out)とも呼ばれる構造のことです。
このようなキュー構造を表現するには、array_push関数(ブラケット構文)とarray_shift関数を組み合わせて利用します。array_push関数で配列の末尾に要素を追加し、array_shift関数で先頭から要素を取り出します。
スタック及びキューにつちえは、処理の効率性が望ましくなく低速です。
<?php
$data = [];
array_push($data, 10);
array_push($data, 15);
array_push($data, 30);
print_r($data);
print(array_shift($data).'<br>');
print_r($data);