Вам нужно использовать цикл foreach
, и для каждого цикла вы можете использовать array_column
, чтобы получить все значения start_time и end_time. Затем вы можете использовать функции max и min для получения значений max и min соответственно.
$data = array(
'2019-10-07' =>
array
(
'0' => array
(
'start_time' => '09:00:00',
'end_time' => '12:00:00',
'working_id' => 55,
),
'1' => array
(
'start_time' => '12:00:00',
'end_time' => '13:00:00',
'working_id' => 58,
),
'2' => array
(
'start_time' => '13:00:00',
'end_time' => '18:00:00',
'working_id' => 56,
),
),
);
$format = array();
foreach( $data as $key => $a ) {
$format[$key][0] = array();
$startTimes = array_column( $a, 'start_time'); //get all values with key start_time
$endTimes = array_column( $a, 'end_time'); //get all values with key end_time
$format[$key][0]['start_time'] = min( $startTimes ); //get minimum value
$format[$key][0]['end_time'] = max( $endTimes ); //get maximum value
}
echo '<pre>';
print_r($format);
Вот Demo .