php比较多维数组
问题描述:
我在比较这些数组时遇到问题。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
}
}
答
好老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
那么是什么问题?根据你的代码,所需的数组是否存在? –
根据发布的代码,它确实存在,u_molder。几乎扔我的是,如果从array_search返回的子数组是索引0,最好检查像这样: if($ result!== FALSE){ //它存在 } 其他{ //它不存在 } – Frank