使用 array_diff 后以对象形式获得答案
Getting answer in object form after using array_diff
我正在比较 2 个数组,但在应用 array_diff 之后 returns 对象形式的结果。
看看下面的代码和结果
<?php
$schedule = ['Monday'=>['12:00','01:20'],'Tuesday'=>['04:00','12:00','20:00']];
$booked_slots = ['Monday'=>['12:00'],'Tuesday'=>['20:00']];
$diff = [];
foreach ($schedule as $day => $times) {
$day_wise_slots = isset($booked_slots[$day]) ? $booked_slots[$day] : [];
$diff[$day] = array_diff($times, $day_wise_slots);
}
echo json_encode($diff);
?>
结果:{"星期一":{"1":"01:20"},"星期二":["04:00","12:00"]}
所需输出:{“星期一”:[“01:20”],“星期二”:[“04:00”,“12:00”]}
array_diff
保留原始数组的键。您需要重新初始化数组以使 json 中没有数组键。您可以使用 array_values
来获取重新初始化的数组键
<?php
$schedule = ['Monday'=>['12:00','01:20'],'Tuesday'=>['04:00','12:00','20:00']];
$booked_slots = ['Monday'=>['12:00'],'Tuesday'=>['20:00']];
$diff = [];
foreach ($schedule as $day => $times) {
$day_wise_slots = isset($booked_slots[$day]) ? $booked_slots[$day] : [];
$diff[$day] = array_values(array_diff($times, $day_wise_slots));
}
echo json_encode($diff);
?>
我正在比较 2 个数组,但在应用 array_diff 之后 returns 对象形式的结果。 看看下面的代码和结果
<?php
$schedule = ['Monday'=>['12:00','01:20'],'Tuesday'=>['04:00','12:00','20:00']];
$booked_slots = ['Monday'=>['12:00'],'Tuesday'=>['20:00']];
$diff = [];
foreach ($schedule as $day => $times) {
$day_wise_slots = isset($booked_slots[$day]) ? $booked_slots[$day] : [];
$diff[$day] = array_diff($times, $day_wise_slots);
}
echo json_encode($diff);
?>
结果:{"星期一":{"1":"01:20"},"星期二":["04:00","12:00"]}
所需输出:{“星期一”:[“01:20”],“星期二”:[“04:00”,“12:00”]}
array_diff
保留原始数组的键。您需要重新初始化数组以使 json 中没有数组键。您可以使用 array_values
来获取重新初始化的数组键
<?php
$schedule = ['Monday'=>['12:00','01:20'],'Tuesday'=>['04:00','12:00','20:00']];
$booked_slots = ['Monday'=>['12:00'],'Tuesday'=>['20:00']];
$diff = [];
foreach ($schedule as $day => $times) {
$day_wise_slots = isset($booked_slots[$day]) ? $booked_slots[$day] : [];
$diff[$day] = array_values(array_diff($times, $day_wise_slots));
}
echo json_encode($diff);
?>