'array_slice' による抽出
CoddyのPHPジャーニー「論理とフロー」セクションの一部 — レッスン 16/68。
array_slice()関数を使用すると、元の配列を変更せずに配列の一部を抽出できます。元の配列を変更するarray_pop()やarray_shift()のような関数とは異なり、array_slice()は指定した要素のみを含む新しい配列を作成します。
この関数は、主に2つのパラメータを受け取ります:オフセット(開始位置)と長さ(抽出する要素の数)です:
<?php
$scores = [95, 87, 92, 78, 85, 90, 88];
$topThree = array_slice($scores, 0, 3);
print_r($topThree); // 出力:Array ( [0] => 95 [1] => 87 [2] => 92 )
print_r($scores); // 元の配列は変更されません
?>offsetパラメータはPHPに抽出を開始する場所を伝え(0は最初の要素を意味します)、lengthパラメータは取り出す要素の数を指定します。また、offsetに負の値を使用して、配列の末尾から数え始めることもできます。
この関数は、大きなリストから最初の数項目だけを表示したり、処理のために特定の範囲の要素を抽出したりするなど、元のデータを保持したままデータのサブセットを操作する必要がある場合に特に便利です。
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
チャレンジ
簡単3つの入力を受け取ります:JSON形式の製品価格の配列、開始位置(オフセット)、および抽出するアイテム数(長さ)。3つの入力すべてを読み取り、JSON文字列を配列に変換し、array_slice()を使用して配列の指定された部分を抽出し、抽出されたスライスをprint_r()を使用して出力してください。
入力形式: 3行 - 1行目には数値のJSON配列(例:[29.99,15.50,42.00,8.75,33.25])、2行目にはオフセット(開始位置)、3行目には長さ(抽出する要素の数)が含まれます。
期待される出力: print_r()を使用して表示された、配列の抽出された部分。
チートシート
array_slice() 関数は、元の配列を変更せずに、配列の一部を抽出します。
構文: array_slice($array, $offset, $length)
- offset: 開始位置 (0 = 最初の要素)
- length: 抽出する要素の数
- 配列の末尾から開始するには、負のオフセットを使用します
<?php
$scores = [95, 87, 92, 78, 85, 90, 88];
$topThree = array_slice($scores, 0, 3);
print_r($topThree); // Array ( [0] => 95 [1] => 87 [2] => 92 )
print_r($scores); // 元の配列は変更されません
?>自分で試してみよう
<?php
// 価格のJSON配列を読み込む
$json_input = fgets(STDIN);
$prices = (array)json_decode($json_input, true);
// オフセット(開始位置)を読み込む
$offset = intval(fgets(STDIN));
// 長さ(抽出する要素の数)を読み込む
$length = intval(fgets(STDIN));
// TODO: 以下にスライスを抽出して出力するコードを記述してください
?>このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。