2016-02-28 169 views
1

我在比较这些数组时遇到问题。php比较多维数组

简而言之,我想检查$tid_and_date_arr是否存在于$curr_vals之内。 (看看,很明显)

但是,我的逻辑有缺陷,因为在循环中第二次,所以值不会被跳过。

我错过了什么?循环内的另一个循环?

$curr_vals = array(array('tid' => 22, 'date' => 1497250800), array('tid' => 22, 'date' => 1497337200)); 

$tid_and_date_arr = array('tid' => 22, 'date' => 1497250800)); 

foreach($curr_vals as $value){ 
    if ($tid_and_date_arr == $value) { 
    // skip these values as we've already saved them 
    continue; 
    } 
    else { 
    // save these values as they are new 
    } 
} 
+0

那么是什么问题?根据你的代码,所需的数组是否存在? –

+0

根据发布的代码,它确实存在,u_molder。几乎扔我的是,如果从array_search返回的子数组是索引0,最好检查像这样: if($ result!== FALSE){ //它存在 } 其他{ //它不存在 } – Frank

回答

2

好老array_search有什么问题?

$curr_vals = array(array('tid' => 22, 'date' => 1497250800), array('tid' => 22, 'date' => 1497337200)); 
//$tid_and_date_arr = array('tid' => 22, 'date' => 1497250800); -- this will output 0 
$tid_and_date_arr = array('tid' => 22, 'date' => 1497337200); 

$result = array_search($tid_and_date_arr, $curr_vals); 

print_r($result); 

这将输出你要找的子数组的关键:

1 
+0

啊......这就是它!不知道我是如何错过的。我想,在森林深处看树。谢谢,诺登海姆! – Frank