1

我怀疑 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' );
}

这不工作......它输出一切......不要过滤我试图隐藏的任何项目。

现在的问题是......如何显示不在数组中隐藏的每个项目......我不知道!也许另一个 php 函数可以做到这一点?

4

1 回答 1

1

您可以使用array_intersect

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

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

于 2013-02-26T01:01:42.030 回答