インデックス配列の結合
CoddyのPHPジャーニー「論理とフロー」セクションの一部 — レッスン 14/68。
複数の添字配列を1つの大きな配列に結合する必要がある場合、PHPのarray_merge()関数が最適なソリューションを提供します。この関数は2つ以上の配列を引数として受け取り、入力された配列のすべての要素を含む新しい配列を作成します。
基本的な構文は次のとおりです。
<?php
$firstList = ["Alice", "Bob"];
$secondList = ["Charlie", "Diana"];
$combined = array_merge($firstList, $secondList);
print_r($combined); // 出力: Array ( [0] => Alice [1] => Bob [2] => Charlie [3] => Diana )
?>array_merge() が元の配列を変更するのではなく、完全に新しい配列を作成することに注目してください。最初の配列の要素が最初に配置され、その後に2番目の配列の要素が続く、といった順序になります。新しい配列のインデックスは、0から順に自動的に振り直されます。
2つ以上の配列を一度にマージすることができます:
<?php
$morning = ["John", "Sarah"];
$afternoon = ["Mike", "Lisa"];
$evening = ["Tom"];
$allGuests = array_merge($morning, $afternoon, $evening);
print_r($allGuests); // 出力結果: Array ( [0] => John [1] => Sarah [2] => Mike [3] => Lisa [4] => Tom )
?>この関数は、異なるソースからデータを収集し、それらを1つのリストにまとめる必要がある場合に特に便利です。例えば、異なるイベントのゲストリストをマージしたり、複数のカテゴリの製品カタログを組み合わせたりする場合などが挙げられます。
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
チャレンジ
簡単3つの入力が与えられます。JSON形式の2つの配列と、同じくJSON形式の3つ目の配列です。これら3つの入力をすべて読み込み、各JSON文字列を配列に変換し、array_merge()を使用して3つの配列すべてを1つに結合し、結合された配列をprint_r()を使用して出力してください。
入力形式: 3行 - 各行にJSON配列が含まれます(例: ["apple","banana"])
期待される出力: 3つの配列のすべての要素を順番に含む、print_r()を使用して表示された結合後の配列
チートシート
array_merge() を使用して、複数の添字配列を1つの大きな配列に結合します:
<?php
$firstList = ["Alice", "Bob"];
$secondList = ["Charlie", "Diana"];
$combined = array_merge($firstList, $secondList);
print_r($combined); // 出力: Array ( [0] => Alice [1] => Bob [2] => Charlie [3] => Diana )
?>array_merge() は、元の配列を変更せずに新しい配列を作成します。要素は順番に結合され、0から始まるインデックスが自動的に振り直されます。
3つ以上の配列を一度にマージすることもできます:
<?php
$morning = ["John", "Sarah"];
$afternoon = ["Mike", "Lisa"];
$evening = ["Tom"];
$allGuests = array_merge($morning, $afternoon, $evening);
print_r($allGuests); // 出力: Array ( [0] => John [1] => Sarah [2] => Mike [3] => Lisa [4] => Tom )
?>自分で試してみよう
<?php
// 3つのJSON入力を読み込む
$input1 = trim(fgets(STDIN));
$input2 = trim(fgets(STDIN));
$input3 = trim(fgets(STDIN));
// JSON文字列を配列に変換する
$array1 = (array)json_decode($input1, true);
$array2 = (array)json_decode($input2, true);
$array3 = (array)json_decode($input3, true);
// TODO: 以下に配列をマージして結果を出力するコードを記述してください
?>このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。