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

如何基于共享state字段将二维数组行分组合并到另一数组的子数组中

实现方案

你可以通过先对职位数组按state字段分组,再遍历用户数组匹配对应职位的方式实现,性能更高且逻辑清晰,具体实现代码如下:

<?php
$users = [
    ['email' => 'oldemail@email.com', 'state' => 'IL'],
    ['email' => 'diditwork@email.com', 'state' => 'HI'],
];

$jobs = [
    ['title' => 'Marketing Coordinator', 'location' => 'Chicago', 'state' => 'IL'],
    ['title' => 'Sales Manager (MA)', 'location' => 'Springfield', 'state' => 'IL'],
    ['title' => 'Security Guard/Driver', 'location' => 'Big Island', 'state' => 'HI'],
    ['title' => 'Directory of Sales and Operation Planning', 'location' => 'Honolulu', 'state' => 'HI'],
    ['title' => 'Associate, Strategic Finance', 'location' => 'Joliet', 'state' => 'IL'],
];

// 1. 先将jobs数组按state分组,生成state为键、对应职位列表为值的映射
$jobsGroupByState = [];
foreach ($jobs as $job) {
    $state = $job['state'];
    $jobsGroupByState[$state][] = $job;
}

// 2. 遍历users数组,给每个用户匹配对应state的职位列表
$mergedResult = [];
foreach ($users as $user) {
    // 匹配不到对应state的职位时默认赋值空数组,避免报错
    $user['jobs'] = $jobsGroupByState[$user['state']] ?? [];
    $mergedResult[] = $user;
}

// 打印验证结果
print_r($mergedResult);

运行上述代码后输出的$mergedResult就是你需要的结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 00:39:04