我有2个两个数组
$schedule = [
"Monday" => [0 => "12:00", 1 => "01:20"],
"Tuesday" => [0 => "04:20",1 => "12:00"],
];
$bookedSlots = [
["Monday" => "01:20"],
["Tuesday" => "04:20" ]
];
现在,我希望答案或结果返回剩余可用插槽的数组,其中应从计划中删除已预订的插槽。像下面给出的结果。
$availableSlots = $schedule - $bookedSlots; // [ "Monday" => [ 0 => "12:00"], "Tuesday" =>[ 0 => "12:00" ];
答案 0 :(得分:1)
好的。因此,在这里我写了一个辅助函数来概括该解决方案。您可以使用下面提到的功能。
function find_diff($schedule, $booked_slots)
{
$diff = [];
foreach ($schedule as $day => $times) {
$day_wise_slots = isset($booked_slots[$day]) ? $booked_slots[$day] : [];
if (!is_array($day_wise_slots)) $day_wise_slots = [$day_wise_slots];
$diff[$day] = array_diff($times, $day_wise_slots);
}
return $diff;
}
使用的功能:isset和array_diff。
希望这会有所帮助!