我正在尝试使用array_column从wp_get_post_terms中提取term_id数组,但它不会返回任何内容。
以下是代码:
$atype = wp_get_post_terms($property_ID, 'property_category', true);
$types = array_column($atype, 'term_id'); // Not working so using array map
$types2 = array_map(function($te) {
return $te->term_id;
}, $atype);
echo '$atype: ';
echo '<pre>'; print_r($atype); echo '</pre>';
echo '$types: ';
echo '<pre>'; print_r($types); echo '</pre>';
echo '$types2: ';
echo '<pre>'; print_r($types2); echo '</pre>';
结果如下:
$atype: Array
(
[0] => WP_Term Object
(
[term_id] => 51
[name] => Office
[slug] => office
[term_group] => 0
[term_taxonomy_id] => 51
[taxonomy] => property_category
[description] =>
[parent] => 0
[count] => 1
[filter] => raw
)
)
$types: Array
(
)
$types2: Array
(
[0] => 51
)
为什么array_column不工作?基于文档,它应该。我正在使用&gt; PHP 5.5。 http://php.net/manual/en/function.array-column.php
答案 0 :(得分:2)
因为wp_get_post_terms
返回 object 的数组,而不是2维数组。 array_column
仅适用于php 7.0.0之前的二维数组。