Как получить разность массивов многомерного массива в php? - PullRequest
0 голосов
/ 18 июня 2020

У меня есть 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 Ответ

1 голос
/ 18 июня 2020

Хорошо. Итак, здесь я написал вспомогательную функцию для обобщения решения. Вы можете использовать указанную ниже функцию.

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 .

Надеюсь, это поможет!

...