函数php in_array不会将数组作为针在haystack中进行比较

时间:2013-02-26 00:58:30

标签: php arrays

我怀疑in_array函数有问题。我已经阅读了很多时间的文档,测试它,并且总是添加相同的东西

这是一个有效的代码:

$tohide = '141'; 
$objterm = wp_get_object_terms($post->ID, 'product_cat');
global $catlist;
$catlist = array();
foreach ($objterm as $singleterm) {
    array_push($catlist, $singleterm->term_id);
}
if (!in_array($tohide,$catlist)) {
    woocommerce_get_template_part( 'content', 'product' );
}

那条代码输出所有项目但是类别141 ...很酷,工作正常...... 现在,我想将一个数组作为要隐藏的项目

$tohide = array('141','134'); 
$objterm = wp_get_object_terms($post->ID, 'product_cat');
global $catlist;
$catlist = array();
foreach ($objterm as $singleterm) {
    array_push($catlist, $singleterm->term_id);
}
if (!in_array($tohide,$catlist)) {
    woocommerce_get_template_part( 'content', 'product' );
}

这个DONT工作......输出所有内容......不要过滤我试图隐藏的任何项目。

现在的问题是......如何显示不在数组中的每个项目隐藏......我不知道!也许另一个PHP函数呢?

1 个答案:

答案 0 :(得分:1)

您可以使用array_intersect

if(!array_intersect($tohide, $catlist)){
  ...
}

您将获得一个数组,其中包含$tohide$catlist中存在的任何项目(空数组将评估为false)