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

Laravel中构建自定义数组:将国家按大洲分组整理

按大洲分组重构国家数组

原始数组结构(从数据库获取的国家与大洲信息):

$originalArray = [
    ["country" => "BE", "continent" => "EU"],
    ["country" => "BG", "continent" => "EU"],
    // 更多数据...
];

目标数组结构(按大洲分组,每个大洲下包含对应国家列表):

$targetArray = [
    [
        "continent" => "EU",
        "countries" => [
            ["country" => "BE"],
            ["country" => "BG"]
            // 更多国家...
        ]
    ]
    // 更多大洲...
];

实现代码

// 初始化分组数组
$grouped = [];

foreach ($originalArray as $item) {
    $continent = $item['continent'];
    // 若该大洲未在分组数组中,先初始化结构
    if (!isset($grouped[$continent])) {
        $grouped[$continent] = [
            'continent' => $continent,
            'countries' => []
        ];
    }
    // 将当前国家添加到对应大洲的列表中
    $grouped[$continent]['countries'][] = ['country' => $item['country']];
}

// 转换为索引数组,匹配目标结构的格式
$targetArray = array_values($grouped);

代码逻辑说明:

  • 用关联数组$grouped临时存储分组数据,以大洲代码为键,避免重复创建大洲结构
  • 遍历原始数组时,直接将国家信息追加到对应大洲的countries列表
  • 最后通过array_values()把关联数组转为索引数组,完全匹配目标格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 22:06:22