You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按国家和学校对二维学生数组进行嵌套分组?

按国家和学校嵌套分组二维数组的实现方案

给定存储学生信息的二维数组,要按「国家」→「学校」的层级嵌套分组,把同一国家同一学校的学生信息归到对应层级下,用PHP可以这么实现:

基础实现方法(兼容所有PHP版本)

$students = [
    [
        "country" => "japan",
        "school"  => "kyoto university",
        "name"    => "Naruto Uzumaki"
    ],
    [
        "country" => "usa",
        "school"  => "harvard university",
        "name"    => "Naruto Uzumaki"
    ], 
    [
        "country" => "japan",
        "school"  => "tokyo university",
        "name"    => "sasuke Uchiha"
    ],
    [
        "country" => "japan",
        "school"  => "tokyo university",
        "name"    => "kakashi hatake"
    ],
];

$grouped = [];
foreach ($students as $student) {
    $country = $student['country'];
    $school = $student['school'];
    
    // 检查国家分组是否存在,不存在就初始化
    if (!isset($grouped[$country])) {
        $grouped[$country] = [];
    }
    // 检查该国家下的学校分组是否存在,不存在就初始化
    if (!isset($grouped[$country][$school])) {
        $grouped[$country][$school] = [];
    }
    // 将当前学生信息加入对应分组
    $grouped[$country][$school][] = $student;
}

// 可选:打印结果验证
echo '<pre>' . print_r($grouped, true) . '</pre>';

简洁写法(PHP 7+ 支持)

PHP 7及以上版本会自动为不存在的数组层级创建结构,代码可以简化成这样:

$grouped = [];
foreach ($students as $student) {
    $country = $student['country'];
    $school = $student['school'];
    
    $grouped[$country][$school][] = $student;
}

最终分组结果

运行后会得到符合预期的嵌套结构:

[
    "japan" => [
        "kyoto university" => [
            [
                "country" => "japan",
                "school"  => "kyoto university",
                "name"    => "Naruto Uzumaki"
            ],
        ],
        "tokyo university" => [
            [
                "country" => "japan",
                "school"  => "tokyo university",
                "name"    => "sasuke Uchiha"
            ],
            [
                "country" => "japan",
                "school"  => "tokyo university",
                "name"    => "kakashi hatake"
            ],
        ],
    ],
    "usa" => [
        "harvard university" => [
            [
                "country" => "usa",
                "school"  => "harvard university",
                "name"    => "Naruto Uzumaki"
            ],
        ]
    ]
]

内容的提问来源于stack exchange,提问作者joshoe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 09:40:25