Php 按相同值对嵌套数组进行分组
我需要从和嵌套数组中创建新数组,其中子数组的minimul一个具有相同的值或重复Php 按相同值对嵌套数组进行分组,php,arrays,laravel,Php,Arrays,Laravel,我需要从和嵌套数组中创建新数组,其中子数组的minimul一个具有相同的值或重复 array:4 [▼ 0 => array:4 [▼ "id" => 9 "position" => 3 "jobs" => array:2 [▼ 0 => array:21 [▼ "id" => 2 "name" => "9987C" "plan_id" => null
array:4 [▼
0 => array:4 [▼
"id" => 9
"position" => 3
"jobs" => array:2 [▼
0 => array:21 [▼
"id" => 2
"name" => "9987C"
"plan_id" => null
]
1 => array:21 [▼
"id" => 3
"name" => "1009V"
"plan_id" => null
]
]
]
1 => array:4 [▼
"id" => 8
"position" => 2
"jobs" => array:1 [▼
0 => array:21 [▼
"id" => 2
"name" => "10bb"
"plan_id" => null
]
1 => array:21 [▼
"id" => 4
"name" => "CC09"
"plan_id" => null
]
]
]
...
我曾尝试在foreach内部检查以比较子数组id,如果它以前找到过,但似乎无法正常工作
$finalJobs = array();
foreach ($CompleteJobs as $index => $jobs) {
foreach ($jobs['jobs'] as $job) {
if (!empty($finalJobs)) {
foreach ($finalJobs as &$finalJob) {
foreach ($finalJob['jobs'] as $Fjob) {
if (!empty(array_intersect($Fjob, $job))) {
//here is my problem
}
}
}
} else {
$finalJobs[$job['id']] = $job;
}
}
}
这是我的原始数组,如果在子数组jobs
中id
加倍或重复,我需要检查
array:4 [▼
0 => array:4 [▼
"id" => 9
"position" => 3
"jobs" => array:2 [▼
0 => array:21 [▼
"id" => 2
"name" => "9987C"
"plan_id" => null
]
1 => array:21 [▼
"id" => 3
"name" => "1009V"
"plan_id" => null
]
]
]
1 => array:4 [▼
"id" => 8
"position" => 2
"jobs" => array:1 [▼
0 => array:21 [▼
"id" => 2
"name" => "10bb"
"plan_id" => null
]
1 => array:21 [▼
"id" => 4
"name" => "CC09"
"plan_id" => null
]
]
]
...
我的预期阵列必须如下所示:
array:4 [▼
8 => array:4 [▼
"id" => 8
"position" => 2
]
"id" => 9
"position" => 3
"jobs" => array:3 [▼
0 => array:21 [▼
"id" => 2
"name" => "01"
"plan_id" => null
]
1 => array:21 [▼
"id" => 3
"name" => "09BB"
"plan_id" => null
]
3 => array:21 [▼
"id" => 4
"name" => "10CB"
"plan_id" => null
]
]
]
我需要有一种联合,在那里我检查是否找到相同的
id
值,并将数组重写为新的形式。你说你以前的代码,但似乎不正确-你可以添加此代码,因为它可能很容易修复,但我们还不知道你尝试了什么。我没有得到预期的结果,在这里,您似乎只想将所有作业移动到id为9的项,但是第一个条目呢?