如何在php中获得多维数组的数组差异?

时间:2020-06-18 15:35:31

标签: php arrays laravel multidimensional-array

我有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" ];

1 个答案:

答案 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;
}

使用的功能:issetarray_diff

希望这会有所帮助!

相关问题