<?php
$newArr = array (
100 =>
array (
1 =>
array (
'AVA_Date' => '2019-04-18',
'ROO_Id' => 100,
'RAT_Id' => 9
),
2 =>
array (
'AVA_Date' => '2019-04-20',
'ROO_Id' => 100,
'RAT_Id' => 10
),
4 =>
array (
'AVA_Date' => '2019-04-21',
'ROO_Id' => 100,
'RAT_Id' => 10
),
7 =>
array (
'AVA_Date' => '2019-04-22',
'ROO_Id' => 100,
'RAT_Id' => 9
)
)
);
foreach ($newArr as $key => $array) {
$newArrOtherRooms[$key] = array_reduce($array, function($acc, $val) {
$room = array_keys(array_column($acc, 'ROO_Id'), $val['ROO_Id']);
$rate = array_keys(array_column($acc, 'RAT_Id'), $val['RAT_Id']);
$common = array_intersect($room, $rate);
if(!empty($common)) {
array_push($acc[current($common)]['AVA_Date'], $val['AVA_Date']);
}
else {
$new_arr = $val;
$new_arr['AVA_Date'] = [$val['AVA_Date']];
array_push($acc, $new_arr);
}
return $acc;
},[]);
}
print_r($newArrOtherRooms);
- Output for 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.29, 8.2.0 - 8.2.20, 8.3.0 - 8.3.8
- Array
(
[100] => Array
(
[0] => Array
(
[AVA_Date] => Array
(
[0] => 2019-04-18
[1] => 2019-04-22
)
[ROO_Id] => 100
[RAT_Id] => 9
)
[1] => Array
(
[AVA_Date] => Array
(
[0] => 2019-04-20
[1] => 2019-04-21
)
[ROO_Id] => 100
[RAT_Id] => 10
)
)
)
preferences:
190.42 ms | 404 KiB | 216 Q