如何从WP_Term对象数组提取term_id生成简易数组用于对比
提取WP_Term数组中的term_id生成新数组
你可以用两种简单的方法来提取这两个WP_Term对象数组里的term_id值:
方法一:使用array_column()(推荐)
PHP的array_column()函数可以直接从对象数组中提取指定属性的值——因为WP_Term类实现了ArrayAccess接口,所以我们可以像访问数组键一样访问它的属性:
// 从数组一中提取term_id $array_one_ids = array_column($array_one, 'term_id'); // 结果:array(36, 38) // 从数组二中提取term_id $array_two_ids = array_column($array_two, 'term_id'); // 结果:array(36)
得到目标数组后,你原来的匹配逻辑就能正常运行了:
$match = array_intersect($array_one_ids, $array_two_ids); if( count($match) > 0) { echo 'we have a match!'; }
方法二:使用array_map()
如果你的PHP版本较低,或者需要更灵活的自定义处理,可以用array_map()遍历每个WP_Term对象并取出term_id:
$array_one_ids = array_map(function($term) { return $term->term_id; }, $array_one); $array_two_ids = array_map(function($term) { return $term->term_id; }, $array_two);
这两种方法都能精准得到你需要的数组,后续的匹配检测逻辑也能顺利执行。
内容的提问来源于stack exchange,提问作者scmccarthy22
相关产品推荐
相关产品推荐

