【发布时间】:2016-09-06 19:34:45
【问题描述】:
我有一个数组的多维结果,其中包含数组对象的数量,需要通过唯一 id 在数组中应用过滤器以进行复制并将其他过滤后的 id 与数组的相同键值对合并/组合。像下面想要的结果
这需要服务。
结果集
Array
(
[0] => Array
(
[id] => 24901
[course_title_code] => VTM 001
[instructors_name] => Master_Al_Za
[course_code] => 8734
[unique_id] => VTM_001_8734_Master_Al_Za
)
[1] => Array
(
[id] => 25669
[course_title_code] => VTM 002
[instructors_name] => Ali_Al
[course_code] => 8732
[unique_id] => VTM_002_8732_Ali_Al
)
[2] => Array
(
[id] => 26011
[course_title_code] => VTM 002
[instructors_name] => Ali_Al
[course_code] => 8732
[unique_id] => VTM_002_8732_Ali_Al
)
[3] => Array
(
[id] => 29502
[course_title_code] => VTM 001
[instructors_name] => Master_Al_Za
[course_code] => 8734
[unique_id] => VTM_001_8734_Master_Al_Za
)
[4] => Array
(
[id] => 49202
[course_title_code] => VTM 001
[instructors_name] => Master_Al_Za
[course_code] => 8734
[unique_id] => VTM_001_8734_Master_Al_Za
)
)
期望的结果
Array
(
[0] => Array
(
[id] => 24901,29502,49202
[course_title_code] => VTM 001
[instructors_name] => Master_Al_Za
[course_code] => 8734
[unique_id] => VTM_001_8734_Master_Al_Za
)
[1] => Array
(
[id] => 25669,26011
[course_title_code] => VTM 002
[instructors_name] => Ali_Al
[course_code] => 8732
[unique_id] => VTM_002_8732_Ali_Al
)
)
我当前的实现尝试做这样的事情:
$data = array_unique_by_key($data, 'unique_id');
function array_unique_by_key (&$array, $key) {
$tmp = array();
$result = array();
foreach ($array as $p => $value) {
if (!in_array($value[$key], $tmp)) {
array_push($tmp, $value[$key]);
array_push($result, $value);
}else{
$result[$p] = $value['id'];
}
}
return $array = $result;
}
【问题讨论】:
-
这似乎来自数据库,不是吗?
-
上述代码的输出是什么?
-
是的数据来自数据库,但我不能应用这个结束 @Quasimodo'sclone 的逻辑
-
为什么不呢?您没有访问 SQL 的权限吗?
-
它返回了我过滤的 ID,但没有合并 @SyedMohamedAladeen
标签: php arrays multidimensional-array merge unique