'array_pop' による削除
CoddyのPHPジャーニー「論理とフロー」セクションの一部 — レッスン 11/68。
array_pop() 関数は、配列から最後の要素を取り除き、その取り除かれた値を返します。要素を追加する array_push() とは異なり、この関数を使用するたびに配列が1要素分短くなります。
仕組みは以下の通りです:
<?php
$tasks = ["wash dishes", "do laundry", "buy groceries"];
$completedTask = array_pop($tasks);
echo $completedTask; // 出力: buy groceries
print_r($tasks); // 出力: Array ( [0] => wash dishes [1] => do laundry )
?>array_pop() は元の配列を変更し、かつ削除された要素を返すことに注目してください。これにより、ToDoリストの最後のタスクを完了させたり、スタックから最新の項目を削除したりするなど、リストの末尾から項目を処理する必要があるシナリオに最適です。
空の配列に対して array_pop() を使用しようとすると、エラーを発生させることなく null を返します。この関数は、配列をスタックとして扱う場合に特に便利です。スタックとは、末尾に項目を追加し、末尾から項目を取り出す「後入れ先出し(LIFO)」パターンのことです。
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
チャレンジ
簡単2つの入力を受け取ります。JSON形式のタスクの初期配列と、完了させるタスクの数を示す数値です。両方の入力を読み込み、JSON文字列を配列に変換し、array_pop() を指定された回数だけ使用して末尾から完了したタスクを削除し、最終的な配列を print_r() を使用して出力してください。
入力形式: 2行 - 1行目にはJSON配列(例: ["task1","task2","task3"])、2行目には完了させるタスクの数(数値)が含まれます。
期待される出力: 完了したタスクを削除した後の配列を print_r() を使用して表示したもの
チートシート
array_pop() 関数は、配列から最後の要素を取り除き、その取り除かれた値を返します。
<?php
$tasks = ["wash dishes", "do laundry", "buy groceries"];
$completedTask = array_pop($tasks);
echo $completedTask; // 出力: buy groceries
print_r($tasks); // 出力: Array ( [0] => wash dishes [1] => do laundry )
?>主なポイント:
- 最後の要素を削除することで、元の配列を変更します
- 取り除かれた要素を返します
- 空の配列に使用された場合は
nullを返します(エラーは発生しません) - 「後入れ先出し」(スタック)操作に便利です
自分で試してみよう
<?php
// JSON配列の入力を読み込む
$jsonInput = fgets(STDIN);
$tasks = (array)json_decode($jsonInput, true);
// 完了させるタスクの数を読み込む
$numToComplete = intval(fgets(STDIN));
// TODO: 以下にコードを記述してください
// array_pop() を使用して、指定された数のタスクを削除してください
// 最終的な配列を出力する
print_r($tasks);
?>このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。