Menu
Coddy logo textTech

'array_shift' による削除

CoddyのPHPジャーニー「論理とフロー」セクションの一部。レッスン 13/68。

array_shift()関数は、array から最初の要素を削除し、削除された値を返します。これは、array の先頭に要素を追加するarray_unshift()の反対です。

仕組みは次のとおりです:

<?php
$queue = ["Alice", "Bob", "Charlie"];
$firstPerson = array_shift($queue);
echo $firstPerson;  // 出力: Alice
print_r($queue);    // Outputs: Array ( [0] => Bob [1] => Charlie )
?>

array_shift() は元の配列を変更すると同時に、削除された要素を返すことに注意してください。最初の要素を削除すると、残りのすべての要素が自動的に下へ移動して空いた場所を埋めます。"Bob" はインデックス 1 からインデックス 0 に移動し、"Charlie" はインデックス 2 からインデックス 1 に移動します。

この再インデックス付けは自動的に行われるため、配列は適切な数値シーケンスを維持します。空の配列に対して array_shift() を使用すると、エラーを引き起こさずに null を返します。

この関数は、items を「先入れ先出し」の順序で処理する queue の実装に特に役立ちます。たとえば、line の customers を処理したり、受け取った順序で tasks を処理したりする場合です。

challenge icon

チャレンジ

簡単

2つの入力を受け取ります。1つ目はJSON形式で行列に並んでいる顧客の初期配列、2つ目は対応する顧客の人数を示す数値です。両方の入力を読み取り、JSON文字列を配列に変換し、array_shift()を指定された回数使用して行列の先頭から対応済みの顧客を削除し、print_r()を使って最終的な配列を出力してください。

入力形式: 2行です。1行目にはJSON配列(例: ["Alice","Bob","Charlie","Diana"])、2行目には対応する顧客の人数(数値)が含まれます。

期待される出力: 対応済みの顧客を先頭から削除した後の配列を、print_r()を使って表示します。

自分で試してみよう

<?php
// 顧客のJSON配列を読み取る
$jsonInput = fgets(STDIN);
$customers = (array)json_decode($jsonInput, true);

// 接客する顧客の数を読み取る
$numToServe = intval(fgets(STDIN));

// TODO: 以下にコードを書いてください
// array_shift() を使って列の先頭から顧客を削除する


// 最終的な配列を出力する
print_r($customers);
?>
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

論理とフローのすべてのレッスン

自分で練習してみよう: PHPオンラインコンパイラ