0

这是我的阵列。

我试图找到一个特定的日期并从数组中删除整个键(对应的 start_time 和 end_time.

    $c = array
    // Search all end_times        
    $remove = '2012-06-24 17:00:59';

数组(2){

[ 0 ]=>
数组(2){

[ 0 ]=>
数组(2){

["ID"]=> 字符串(2) "15"
["start_time"]=> 字符串(19) "2012-06-24 08:00:00"

}

[ 1 ]=>
数组(2) {

["ID"]=> 字符串(2) "15"
["end_time"]=> 字符串(19) "2012-06-24 17:00:59"

}

}

[ 1 ]=>
数组(2){

[ 0 ]=>
数组(2){

["ID"]=> 字符串(2) "28"
["start_time"]=> 字符串(19) "2012-07-26 18:00:00"

}

[ 1 ]=>
数组(2){

["ID"]=> 字符串(2) "28"
["end_time"]=> 字符串(19) "2012-07-26 22:00:59"

}

}

}

这是我到目前为止的代码。它仅在针对第一个 start_time 或第二个 end_time 时才有效,这向我表明计数在某处丢失了。我对 PHP 还很陌生,所以我对接下来会发生什么一无所知。

   // recursive array search, look for value, remove key
   for ($i = 0, $count = count($c); $i < $count; $i++) {
       if ($c[$i][$i]['end_time'] == $remove) {
           unset($c[$i]);
   } 
   }

将不胜感激任何帮助!
问候

4

1 回答 1

1
foreach ($c as $k=>$v) {
   foreach ($v as $line) {
      $times = array('start_time', 'end_time');
      foreach ($times as $time) {
         if ($line[$time] == $remove) {
            unset($c[$k]);
         }
      }
   }
}

如果我理解正确,应该做你正在寻找的东西。

编辑:基本上它所做的是获取原始数组的每个成员并搜索该父数组的每个成员以获取删除时间。如果找到它,它将删除整个“树”。

于 2012-07-26T01:00:20.470 回答