PHP は、特に Web 開発で広く使用されている言語の 1 つで、柔軟性が高く使いやすい言語です。 PHP の配列は、データをグループ化する必要がある場合に非常に便利で実用的なツールです。この記事では、PHP 配列がどのようにグループ化されるかを詳しく見ていきます。
ステップ 1: データを準備する
グループ化操作を実行する前に、データを準備する必要があります。この記事では学生情報管理システムの学生データを利用します。具体的なデータは次のとおりです。
$students = [ [ "name" => "张三", "gender" => "男", "age" => 18, "score" => 85, "class" => "T1" ], [ "name" => "李四", "gender" => "女", "age" => 19, "score" => 80, "class" => "T2" ], [ "name" => "王五", "gender" => "男", "age" => 20, "score" => 95, "class" => "T1" ], [ "name" => "赵六", "gender" => "女", "age" => 18, "score" => 70, "class" => "T2" ], [ "name" => "钱七", "gender" => "男", "age" => 19, "score" => 90, "class" => "T1" ] ];
上記のデータには、生徒の名前、性別、年齢、学年、クラス情報が含まれます。
ステップ 2: クラスに従ってグループ化する
次に、PHP の array_column 関数を使用して、上記のデータをクラスに従ってグループ化します。 array_column 関数は、多次元配列内の部分配列を取得できます。たとえば、次のコードは、$students 配列から「class」という名前の部分配列を取得します:
$class = array_column($students, 'class');
$class 配列には、すべての学生のクラス情報のみが含まれます。 PHP の array_unique 関数を使用して、一意のクラスを取得できます。これは、学生情報をグループ化するための基礎となります。
$unique_classes = array_unique($class);
すべての一意のクラスのリストを含む配列 $unique_classes を取得したので、foreach ループを使用して配列を反復処理し、新しい多次元配列 $grouped_students を作成して、同じクラスの生徒をグループ化しましょう。情報はサブ配列に格納されます。
$grouped_students = array(); foreach($unique_classes as $class_name){ $grouped_students[$class_name] = array(); foreach($students as $student){ if($student['class'] == $class_name){ $grouped_students[$class_name][] = $student; } } }
上記のコードは、クラスに従ってすべての学生情報をグループ化し、$grouped_students という名前の多次元配列に保存します。これで、var_dump または print_r を使用して $grouped_students 配列を表示し、グループ化が成功したかどうかを確認できるようになりました。出力は次のとおりです。
Array ( [T1] => Array ( [0] => Array ( [name] => 张三 [gender] => 男 [age] => 18 [score] => 85 [class] => T1 ) [1] => Array ( [name] => 王五 [gender] => 男 [age] => 20 [score] => 95 [class] => T1 ) [2] => Array ( [name] => 钱七 [gender] => 男 [age] => 19 [score] => 90 [class] => T1 ) ) [T2] => Array ( [0] => Array ( [name] => 李四 [gender] => 女 [age] => 19 [score] => 80 [class] => T2 ) [1] => Array ( [name] => 赵六 [gender] => 女 [age] => 18 [score] => 70 [class] => T2 ) ) )
上記の出力は、学生情報をクラスに従って正常にグループ化したことを示しています。
ステップ 3: 他のフィールドに基づいてグループ化する
クラスに加えて、他のフィールドに基づいて学生情報をグループ化することもできます。ここでは、グループ化基準として年齢を使用します。具体的なコードは次のとおりです。
$grouped_students_by_age = array(); foreach($students as $student){ $grouped_students_by_age[$student['age']][] = $student; }
上記のコードは、学生の情報を年齢に応じてグループ化し、$grouped_students_by_age という名前の多次元配列に格納します。これで、var_dump または print_r を使用して $grouped_students_by_age 配列を表示し、グループ化が成功したかどうかを確認できるようになりました。出力は次のとおりです。
Array ( [18] => Array ( [0] => Array ( [name] => 张三 [gender] => 男 [age] => 18 [score] => 85 [class] => T1 ) [1] => Array ( [name] => 赵六 [gender] => 女 [age] => 18 [score] => 70 [class] => T2 ) ) [19] => Array ( [0] => Array ( [name] => 李四 [gender] => 女 [age] => 19 [score] => 80 [class] => T2 ) [1] => Array ( [name] => 钱七 [gender] => 男 [age] => 19 [score] => 90 [class] => T1 ) ) [20] => Array ( [0] => Array ( [name] => 王五 [gender] => 男 [age] => 20 [score] => 95 [class] => T1 ) ) )
ご覧のとおり、学生情報を年齢に応じてグループ化することができました。
概要
この記事では、PHP 配列を使用してデータをグループ化する方法を紹介しました。学生情報を例として、クラスと年齢別にデータをグループ化しました。これらの操作により、データの管理と処理がより便利になり、コードの効率と可読性が向上します。最後に、読者は他のグループ化方法を試し、実際の開発で PHP 配列の利点を最大限に活用することをお勧めします。
以上がPHP配列をグループ化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。