将 1 天数组拆分为 2 天数组
Split 1 day array into 2 days array
我有一个这样的数组,我想将它分成两个具有相同日期的数组。
array (size=2)
'dates' => string '2021-10-20' (length=10)
'hours' =>
array (size=2)
0 =>
array (size=12)
0 => string '07:30' (length=5)
1 => string '08:00' (length=5)
2 => string '08:30' (length=5)
3 => string '09:00' (length=5)
4 => string '09:30' (length=5)
5 => string '10:00' (length=5)
6 => string '10:30' (length=5)
7 => string '11:00' (length=5)
8 => string '11:30' (length=5)
9 => string '12:00' (length=5)
10 => string '12:30' (length=5)
11 => string '13:00' (length=5)
1 =>
array (size=4)
0 => string '15:30' (length=5)
1 => string '16:00' (length=5)
2 => string '16:30' (length=5)
3 => string '17:00' (length=5)
我想制作 2 个具有相同日期的数组,它看起来像这样:
0 =>
'dates' => string '2021-10-20'
'hours' =>
array (size=1)
0 =>
array (size=12)
0 => string '07:30' (length=5)
1 => string '08:00' (length=5)
2 => string '08:30' (length=5)
3 => string '09:00' (length=5)
4 => string '09:30' (length=5)
5 => string '10:00' (length=5)
6 => string '10:30' (length=5)
7 => string '11:00' (length=5)
8 => string '11:30' (length=5)
9 => string '12:00' (length=5)
10 => string '12:30' (length=5)
11 => string '13:00' (length=5)
1 =>
'dates' => string '2021-10-20'
'hours' =>
array (size=1)
0 =>
array (size=4)
0 => string '15:30' (length=5)
1 => string '16:00' (length=5)
2 => string '16:30' (length=5)
3 => string '17:00' (length=5)
如何做到这一点?我的代码是这样的,
if ($cekWaktuDosen4->num_rows == 0) {
$timesDosen4[$i]['dates'] = $dates;
$timesDosen4[$i]['hours'] = Array
(
(0) => Array
(
0 => '07:30',
1 => '08:00',
2 => '08:30',
3 => '09:00',
4 => '09:30',
5 => '10:00',
6 => '10:30',
7 => '11:00',
8 => '11:30',
9 => '12:00',
10 => '12:30',
11 => '13:00',
12 => '13:30',
13 => '14:00',
14 => '14:30',
15 => '15:00',
16 => '15:30',
17 => '16:00',
18 => '16:30',
19 => '17:00'
)
);
}else {
$y = 0;
while ($k = $cekWaktuDosen4->fetch_object()) {
$tglMulaiDosen4 = $carbon->create($carbon->parse($k->tanggal_mulai)->format('Y-m-d'));
$tglSelesaiDosen4 = $carbon->create($carbon->parse($k->tanggal_selesai)->format('Y-m-d'));
$tglBantuMulai4 = $tglMulaiDosen4->addHours(7)->addMinutes(30);
$tglBantuSelesai4 = $tglSelesaiDosen4->addHours(17);
if($tglBantuMulai4 < $k->tanggal_mulai) {
$timesDosen4[$i]['dates'] = $tglMulaiDosen4->format('Y-m-d');
$timesDosen4[$i]['hours'][$y] = create_time_range($tglBantuMulai4->format('H:i'), rounddown_timestamp($carbon->parse($k->tanggal_mulai)->format('H:i')));
$y++;
if($k->tanggal_selesai < $tglBantuSelesai4) {
$timesDosen4[$i]['hours'][$y] = create_time_range(roundup_timestamp($carbon->parse($k->tanggal_selesai)->format('H:i')), $tglBantuSelesai4->format('H:i'));
}
}else if($tglBantuMulai4 == $k->tanggal_mulai && $tglBantuSelesai4 != $k->tanggal_selesai) {
$timesDosen4[$i]['dates'] = $tglMulaiDosen4->format('Y-m-d');
$timesDosen4[$i]['hours'][$y] = create_time_range(roundup_timestamp($carbon->parse($k->tanggal_selesai)->format('H:i')), $tglBantuSelesai4->format('H:i'));
}
}
}
我试图为日期添加变量,但它不起作用。有时只显示最后一个数组。帮我把一个数组分成两个不同的数组
对于一维数组:
$newArray = array();
foreach($originalArray['hours'] as $k=>$hours){
$newArray[$k]['dates'] = $originalArray['dates'];
$newArray[$k]['hours'] = $hours;
}
对于多维数组:
$newArray = array();
foreach($originalArray as $originalArr){
foreach($originalArr['hours'] as $k=>$hours){
$newArray[$originalArr['dates']][$k]['dates'] = $originalArr['dates'];
$newArray[$originalArr['dates']][$k]['hours'] = $hours;
}
}
$newArray = array_values($newArray);
print_r($newArray);
我有一个这样的数组,我想将它分成两个具有相同日期的数组。
array (size=2)
'dates' => string '2021-10-20' (length=10)
'hours' =>
array (size=2)
0 =>
array (size=12)
0 => string '07:30' (length=5)
1 => string '08:00' (length=5)
2 => string '08:30' (length=5)
3 => string '09:00' (length=5)
4 => string '09:30' (length=5)
5 => string '10:00' (length=5)
6 => string '10:30' (length=5)
7 => string '11:00' (length=5)
8 => string '11:30' (length=5)
9 => string '12:00' (length=5)
10 => string '12:30' (length=5)
11 => string '13:00' (length=5)
1 =>
array (size=4)
0 => string '15:30' (length=5)
1 => string '16:00' (length=5)
2 => string '16:30' (length=5)
3 => string '17:00' (length=5)
我想制作 2 个具有相同日期的数组,它看起来像这样:
0 =>
'dates' => string '2021-10-20'
'hours' =>
array (size=1)
0 =>
array (size=12)
0 => string '07:30' (length=5)
1 => string '08:00' (length=5)
2 => string '08:30' (length=5)
3 => string '09:00' (length=5)
4 => string '09:30' (length=5)
5 => string '10:00' (length=5)
6 => string '10:30' (length=5)
7 => string '11:00' (length=5)
8 => string '11:30' (length=5)
9 => string '12:00' (length=5)
10 => string '12:30' (length=5)
11 => string '13:00' (length=5)
1 =>
'dates' => string '2021-10-20'
'hours' =>
array (size=1)
0 =>
array (size=4)
0 => string '15:30' (length=5)
1 => string '16:00' (length=5)
2 => string '16:30' (length=5)
3 => string '17:00' (length=5)
如何做到这一点?我的代码是这样的,
if ($cekWaktuDosen4->num_rows == 0) {
$timesDosen4[$i]['dates'] = $dates;
$timesDosen4[$i]['hours'] = Array
(
(0) => Array
(
0 => '07:30',
1 => '08:00',
2 => '08:30',
3 => '09:00',
4 => '09:30',
5 => '10:00',
6 => '10:30',
7 => '11:00',
8 => '11:30',
9 => '12:00',
10 => '12:30',
11 => '13:00',
12 => '13:30',
13 => '14:00',
14 => '14:30',
15 => '15:00',
16 => '15:30',
17 => '16:00',
18 => '16:30',
19 => '17:00'
)
);
}else {
$y = 0;
while ($k = $cekWaktuDosen4->fetch_object()) {
$tglMulaiDosen4 = $carbon->create($carbon->parse($k->tanggal_mulai)->format('Y-m-d'));
$tglSelesaiDosen4 = $carbon->create($carbon->parse($k->tanggal_selesai)->format('Y-m-d'));
$tglBantuMulai4 = $tglMulaiDosen4->addHours(7)->addMinutes(30);
$tglBantuSelesai4 = $tglSelesaiDosen4->addHours(17);
if($tglBantuMulai4 < $k->tanggal_mulai) {
$timesDosen4[$i]['dates'] = $tglMulaiDosen4->format('Y-m-d');
$timesDosen4[$i]['hours'][$y] = create_time_range($tglBantuMulai4->format('H:i'), rounddown_timestamp($carbon->parse($k->tanggal_mulai)->format('H:i')));
$y++;
if($k->tanggal_selesai < $tglBantuSelesai4) {
$timesDosen4[$i]['hours'][$y] = create_time_range(roundup_timestamp($carbon->parse($k->tanggal_selesai)->format('H:i')), $tglBantuSelesai4->format('H:i'));
}
}else if($tglBantuMulai4 == $k->tanggal_mulai && $tglBantuSelesai4 != $k->tanggal_selesai) {
$timesDosen4[$i]['dates'] = $tglMulaiDosen4->format('Y-m-d');
$timesDosen4[$i]['hours'][$y] = create_time_range(roundup_timestamp($carbon->parse($k->tanggal_selesai)->format('H:i')), $tglBantuSelesai4->format('H:i'));
}
}
}
我试图为日期添加变量,但它不起作用。有时只显示最后一个数组。帮我把一个数组分成两个不同的数组
对于一维数组:
$newArray = array();
foreach($originalArray['hours'] as $k=>$hours){
$newArray[$k]['dates'] = $originalArray['dates'];
$newArray[$k]['hours'] = $hours;
}
对于多维数组:
$newArray = array();
foreach($originalArray as $originalArr){
foreach($originalArr['hours'] as $k=>$hours){
$newArray[$originalArr['dates']][$k]['dates'] = $originalArr['dates'];
$newArray[$originalArr['dates']][$k]['hours'] = $hours;
}
}
$newArray = array_values($newArray);
print_r($newArray);