查找值并从多维数组中删除第一级键

时间:2012-07-26 00:51:48

标签: php multidimensional-array

这是我的阵列。

我正在尝试查找特定日期并从数组中删除整个键(对应的start_time和end_time。

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

数组(2){

     
    

[ 0 ] =>
    数组(2){

         
      

[ 0 ] =>
数组(2){

             
        

[ “ID”] => string(2)“15”
[“start_time”] => string(19)“2012-06-24 08:00:00”

      
             

}

      [ 1 ] =>
数组(2){

             
        

[ “ID”] => string(2)“15”
[“end_time”] => string(19)“2012-06-24 17:00:59”

      
             

}

    
         

}

         

[ 1 ] =>
    数组(2){

         
      

[ 0 ] =>
      数组(2){

             
        

[ “ID”] => string(2)“28”
[[start_time“] => string(19)“2012-07-26 18:00:00”

      
             

}

             

[ 1 ] =>
      数组(2){

             
        

[ “ID”] => string(2)“28”
[“end_time”] => string(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]);
   } 
   }

对此有任何帮助表示感谢! 此致

1 个答案:

答案 0 :(得分: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]);
         }
      }
   }
}

如果我理解正确的话,应该做你正在寻找的事情。

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