PHPでは、 array_unshift()関数は、1つ以上の要素を配列の先頭に挿入できます。この関数は通常、特に「プッシュ」操作を実装するために、スタック操作をシミュレートするために使用されます。多くの開発者は、PHPのarray_push()がスタック操作を実装する正しい方法であると誤って信じています。実際、 array_unshift()は、特に順番にデータを処理する必要がある場合、スタックに近い機能です。
スタックとは、「最初のアウトの最後」の原理に従うデータ構造です。つまり、スタックに追加された要素が最初に削除されます。スタックには2つの基本操作があります。
プッシュ:スタックの上部に要素を追加します。
POP :スタックの上部から要素を削除します。
PHPには、2つの一般的なスタック実装メソッドがあります。1つはarray_push()とarray_pop()を使用することです。もう1つは、array_unshift()とarray_shift()を使用することです。今日は、2番目の方法、 Array_unshift()を使用してスタックのプッシュ操作をシミュレートする方法に焦点を当てています。
array_unshift()関数の関数は、1つ以上の要素を配列の先頭に挿入することです。これは、実際にはスタックのプッシュ操作に相当します。次のコードの例を参照してください。
<?php
// 空の配列を初期化します
$stack = array();
// 使用 array_unshift 成し遂げる push 動作します
array_unshift($stack, "最初の要素");
array_unshift($stack, "2番目の要素");
array_unshift($stack, "3番目の要素");
// 印刷スタックの要素
print_r($stack);
?>
出力結果:
Array
(
[0] => 3番目の要素
[1] => 2番目の要素
[2] => 最初の要素
)
ご覧のとおり、 array_unshift()を使用した後、最新の要素が常にアレイの前面に追加され、スタックの最後のファーストアウト(LIFO)機能を実装します。
array_push()は、arrayの最後に要素を追加することですが、スタック特性に準拠する操作が必要な場合は、array_unshift()がより適切です。その理由は次のとおりです。
最後に最後:毎回、要素はarray_unshift()を介して配列のフロントエンドに配置され、最後に追加された要素が最初にアクセスされるようにします。
最優先事項: array_push()と比較して、 array_unshift()は、最新の要素が常に配列の「スタックの上」にあることを保証します。
array_unshift()を使用して「プッシュ」操作を実装できますが、スタックのコアは要素を追加するだけでなく、スタックの上部から要素を削除できることでもあります。これを行うには、 array_shift()を使用して「ポップ」操作をシミュレートできます。
<?php
// 使用 array_shift スタックの上部から要素を削除します
$removedElement = array_shift($stack);
echo "削除された要素: " . $removedElement . "\n";
// 印刷スタックの要素
print_r($stack);
?>
出力結果:
削除された要素: 3番目の要素
Array
(
[0] => 2番目の要素
[1] => 最初の要素
)
このようにして、スタックの「プッシュ」操作と「ポップ」操作を完全にシミュレートできます。
array_unshift()を使用してプッシュ操作を実装します。プッシュ操作は、スタックの操作特性に沿ったもので、新しい要素が常にスタックの上部にあることを確認します。
array_shift()を使用して、スタックの上部要素を削除し、スタックの「ポップ」操作をシミュレートします。
データ処理であろうと、複雑なアルゴリズムスタック構造の実装であろうと、 array_unshift()とarray_shift()は、マスタリングする価値のある基本的なスキルです。