<?php
$array = [
[
'parent' => 'Basic',
'parentId' => 1,
'child' => 'Birthday',
'childId' => 2,
],
[
'parent' => 'Basic',
'parentId' => 1,
'child' => 'Gender',
'childId' => 3,
],
[
'parent' => 'Geo',
'parentId' => 10,
'child' => 'Current City',
'childId' => 11,
],
[
'parent' => 'Known me',
'parentId' => 5,
'child' => 'My personality',
'childId' => 7,
],
[
'parent' => 'Known me',
'parentId' => 5,
'child' => 'Best life moment',
'childId' => 8,
],
];
$result = [];
foreach ($array as $row) {
if (!isset($result[$row['parentId']])) {
$result[$row['parentId']] = [
'parent' => $row['parent'],
'parentId' => $row['parentId'],
'child' => [$row['child']]
];
} else {
$result[$row['parentId']]['child'][] = $row['child'];
}
}
var_export(array_values($result));
preferences:
24.94 ms | 405 KiB | 5 Q