I'm not familiar with PHP language. I need to merge accounts data if name is matched and filter out duplicated data that provided in array structure.
I'm trying to merge the accounts value then use array_unique to remain the value is unique but i'm not sure where to write this logic.
$array =
array:2 [
0 => array:2 [
"name" => "account.payroll"
"accounts" => array:3 [
0 => array:3 [
"id" => 27
"code" => "700000"
]
1 => array:3 [
"id" => 101
"code" => "701000"
]
]
1 => array:2 [
"name" => "account.payroll"
"accounts" => array:3 [
0 => array:3 [
"id" => 27
"code" => "700000"
]
1 => array:3 [
"id" => 102
"code" => "702000"
]
]
]
Expected output
array:1 [
0 => array:3 [
"name" => "account.payroll"
"accounts" => array:7 [
0 => array:3 [
"id" => 27
"code" => "700000"
]
1 => array:3 [
"id" => 101
"code" => "701000"
]
2 => array:3 [
"id" => 102
"code" => "702000"
]
]
]
]
My code
array_map(function($tmp) {
unset($tmp['total_net_movement']);
if (isset($tmp['accounts'])) {
foreach ($tmp['accounts'] as $key => $value) {
unset($value['net_movement']);
$tmp['accounts'][$key] = $value;
}
}
return $tmp;
}, $array);