Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 嵌套数组中的未设置元素,在一个时间间隔之间_Php_Arrays_Multidimensional Array - Fatal编程技术网

Php 嵌套数组中的未设置元素,在一个时间间隔之间

Php 嵌套数组中的未设置元素,在一个时间间隔之间,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我正在尝试删除一个元素 我在以下地点预订了房间: $StartTime = "14:00"; $EndTime = "16:30"; 并与 Array ( [Tennis 1] => Array ( [IntervalTime] => Array ( [Lun] => Array (

我正在尝试删除一个元素

我在以下地点预订了房间:

$StartTime = "14:00"; $EndTime = "16:30";
并与

Array
(
    [Tennis 1] => Array
        (
            [IntervalTime] => Array
                (
                    [Lun] => Array
                        (
                            [0] => 10:00
                            [1] => 11:00
                            [2] => 12:00
                            [3] => 13:00
                            [4] => 14:00
                            [5] => 15:00
                            [6] => 16:00
                            [7] => 17:00
                            [8] => 18:00
                            [9] => 19:00
                            [10] => 20:00
                        )

                    [Mar] => Array
                        (
                            [0] => 12:00
                            [1] => 13:00
                            [2] => 14:00
                            [3] => 15:00
                        )

                    [Mer] => Array
                        (
                            [0] => 09:00
                            [1] => 10:00
                            [2] => 11:00
                            [3] => 12:00
                            [4] => 13:00
                        )

                    [Gio] => Array
                        (
                            [0] => 09:00
                            [1] => 10:00
                            [2] => 11:00
                            [3] => 12:00
                            [4] => 13:00
                        )

                    [Ven] => Array
                        (
                            [0] => 09:00
                            [1] => 10:00
                            [2] => 11:00
                            [3] => 12:00
                            [4] => 13:00
                        )

                    [Sab] => Array
                        (
                            [0] => 09:00
                            [1] => 10:00
                            [2] => 11:00
                            [3] => 12:00
                            [4] => 13:00
                            [5] => 14:00
                            [6] => 15:00
                            [7] => 16:00
                            [8] => 17:00
                            [9] => 18:00
                        )

                    [Sun] => Array
                        (
                            [0] => 09:00
                            [1] => 10:00
                            [2] => 11:00
                            [3] => 12:00
                            [4] => 13:00
                            [5] => 14:00
                            [6] => 15:00
                            [7] => 16:00
                            [8] => 17:00
                            [9] => 18:00
                        )

                )

        )
我需要删除$StartTime$EndTime之间的元素 因此,对于“Lun”,需要删除阵列:

                            [0] => 10:00
                            [1] => 11:00
                            [2] => 12:00
                            [3] => 13:00
                            [4] => 14:00 // need remove
                            [5] => 15:00 // need remove
                            [6] => 16:00 // need remove
                            [7] => 17:00
                            [8] => 18:00
                            [9] => 19:00
                            [10] => 20:00
我想搜索从开始日期到结束日期的时间,然后删除:

unset($DisponibilitaRoom[$Nomeroom]["IntervalTime"]["Lun"][$index]);

您可以更正-简单的
unset
应该可以-但是您需要循环时间并删除它们,如下所示:

foreach($arr['Tennis 1']['IntervalTime']['Lun'] as $k => $v) {
    if ($v >= $StartTime && $v < $EndTime)
        unset($arr['Tennis 1']['IntervalTime']['Lun'][$k]);
}

您可以将
array\u walk\u recursive
array\u map
array\u filter

array_walk_recursive($a['Tennis 1']['IntervalTime'], function(&$v) use ($StartTime, $EndTime){
    if($v >= $StartTime && $v <= $EndTime) $v = false;
});
$f['Tennis 1']['IntervalTime'] = array_map('array_filter', $a['Tennis 1']['IntervalTime']);
print_r($f);
array\u walk\u recursive($a['Tennis 1']['IntervalTime'],函数(&$v)使用($StartTime,$EndTime){

如果($v>=$StartTime&&$v,那么你的问题是什么?很简单:我如何删除StartTime和EndTime之间的元素?如何截取一个范围内的所有时间并取消设置?但是你说了你将如何做。你为什么问这个问题?它是否按照你的预期工作?
array_walk_recursive($a['Tennis 1']['IntervalTime'], function(&$v) use ($StartTime, $EndTime){
    if($v >= $StartTime && $v <= $EndTime) $v = false;
});
$f['Tennis 1']['IntervalTime'] = array_map('array_filter', $a['Tennis 1']['IntervalTime']);
print_r($f);