大家好,我因为这种数组合并而陷入困境:
示例数组
Array(
[0] => Array(
'id' => '1',
'task' => 'Task 1.0'
),
[1] => Array(
'id' => '1',
'task' => 'Task 1.1'
),
[2] => Array(
'id' => '2',
'task' => 'Task 2.0'
),
[3] => Array(
'id' => '2',
'task' => 'Task 2.1'
)
)
预期结果
Array(
[0] => Array(
'id' => '1',
'task' => array(
[0] => 'Task 1.0',
[1] => 'Task 1.1'
)
),
[1] => Array(
'id' => '2',
'task' => array(
[0] => 'Task 2.0',
[1] => 'Task 2.1'
)
)
)
我怎样才能进行这种合并? 提前谢谢。
答案 0 :(得分:2)
这可能不是最好的解决方案,但我认为这是一种方法:
$oldArray = array (
0 => array(
'id' => '1',
'task' => 'Task 1.0'
),
1 => array(
'id' => '1',
'task' => 'Task 1.1'
),
2 => array(
'id' => '2',
'task' => 'Task 2.0'
),
3 => array(
'id' => '2',
'task' => 'Task 2.1'
)
);
$newArray = array();
foreach( $oldArray as $array ) {
if( !isset( $newArray[$array["id"]] ) ) {
$newArray[$array["id"]] = array( "id" => $array["id"] );
}
$newArray[$array["id"]]["task"][] = $array["task"];
}
// reset the temp keys
$newArray = array_values( $newArray );
编辑:忘记$ newArray中的“任务”[$ array [“id”]] [“task”] [] = $ array [“task”];,再次进行编辑