Menu
Coddy logo textTech

'array_shift' による削除

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

array_shift() 関数は、配列から最初の要素を取り除き、その取り除かれた値を返します。これは、配列の先頭に要素を追加する array_unshift() とは逆の動作です。

仕組みは以下の通りです:

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

array_shift()は、元の配列を変更し、かつ削除された要素を返すことに注意してください。最初の要素を削除した後、残りのすべての要素は自動的にシフトして隙間を埋めます。"Bob"はインデックス1からインデックス0へ、"Charlie"はインデックス2からインデックス1へと移動します。

この再インデックスは自動的に行われ、配列が適切な数値シーケンスを維持することを保証します。空の配列に対して array_shift() を使用すると、エラーを発生させることなく null を返します。

この関数は、キューの実装に特に便利です。キューでは、列に並んでいる顧客の対応や、受信した順序でのタスク処理のように、アイテムを「先入れ先出し(first in, first out)」の順序で処理します。

quiz icon腕試し

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

quiz icon腕試し

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

quiz icon腕試し

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

challenge icon

チャレンジ

簡単

2つの入力を受け取ります。JSON形式の顧客の待機列の初期配列と、サービスを提供する顧客の数を示す数値です。両方の入力を読み込み、JSON文字列を配列に変換し、array_shift() を指定された回数だけ使用して列の先頭からサービス済みの顧客を削除し、最終的な配列を print_r() を使用して出力してください。

入力形式: 2行 - 1行目にはJSON配列(例: ["Alice","Bob","Charlie","Diana"])、2行目にはサービスを提供する顧客の数(数値)が含まれます。

期待される出力: 列の先頭からサービス済みの顧客を削除した後の配列を、print_r() を使用して表示したもの。

チートシート

array_shift() 関数は、配列から最初の要素を取り除き、その取り除かれた値を返します。

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

主なポイント:

  • 元の配列を変更し、取り除かれた要素を返します
  • 残りの要素は自動的に再インデックス(前方にシフト)されます
  • 空の配列に使用された場合は null を返します
  • 「先入れ先出し(FIFO)」キューの実装に便利です

自分で試してみよう

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

// 対応する顧客の数を読み込む
$numToServe = intval(fgets(STDIN));

// TODO: 以下にコードを記述してください
// array_shift() を使用して、列の先頭から顧客を削除します


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

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

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