我怀疑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函数呢?
答案 0 :(得分:1)
您可以使用array_intersect
:
if(!array_intersect($tohide, $catlist)){
...
}
您将获得一个数组,其中包含$tohide
中$catlist
中存在的任何项目(空数组将评估为false)