2015-02-06 131 views
-2

我有以下的数组:多维数组搜索

Array 
(
    [0] => Array 
     (
      [6] => 2015-02-27 19:00 
     ) 

    [1] => Array 
     (
      [6] => 2015-02-27 20:00 
     ) 

    [2] => Array 
     (
      [6] => 2015-02-27 21:00 
     ) 

) 

“6”是一种类别,我要检查,如果与根据日期存在的类别。

$category = 7; 
$datetocheck = "2015-02-27 20:00" 

函数应该返回false。 如果我有

$category = 6; 
$datetocheck = "2015-02-27 20:00" 

函数应该返回true。

https://stackoverflow.com/a/12456356/1092632看起来像我想要做的,但我不能得到它的工作。也许这不是一个合适的功能。

任何提示/帮助高度赞赏。

//编辑 我用这个功能(从上面张贴)

function in_multiarray($elem, $array,$field) 
{ 
    $top = sizeof($array) - 1; 
    $bottom = 0; 
    while($bottom <= $top) 
    { 
     if($array[$bottom][$field] == $elem) 
      return true; 
     else 
      if(is_array($array[$bottom][$field])) 
       if(in_multiarray($elem, ($array[$bottom][$field]))) 
        return true; 

     $bottom++; 
    }   
    return false; 
} 

但是当我用它

in_multiarray("2015-02-27 20:00",$myArray,6) 

我得到了一个未定义的索引错误。 我试过“in_array()”,但是这给了我真正的6和7

+0

那你试试这么远吗? – Selcuk 2015-02-06 13:58:36

+0

你自己的发现是什么? – 2015-02-06 14:00:29

回答

1

尝试了这一点:

$array = array(
     array(6 => '2015-02-27 19:00'), 
     array(6 => '2015-02-27 20:00'), 
     array(6 => '2015-02-27 21:00')); 


    function search_in_array($search_in, $search_for){ 
     foreach($search_in as $arr){ 
      if(array_key_exists($search_for[0], $arr) 
       && in_array($search_for[1], array_values($arr))) 
      return true; 
     } 

     return false; 
    } 


    var_dump(search_in_array($array, array(6, '2015-02-27 19:00'))); 
+0

感谢来自其他人的祝福,并真诚地感谢您的答复! – PrimuS 2015-02-06 14:37:21

+0

不客气^^ – 2015-02-06 15:05:39