0

我正在尝试使用 array_column 从 wp_get_post_terms 中提取 term_ids 数组,但它不返回任何内容。

这是代码:

$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 不起作用?根据文档,它应该。我正在使用 > php 5.5。 http://php.net/manual/en/function.array-column.php

4

1 回答 1

2

那是因为对象wp_get_post_terms的返回和数组,而不是二维数组。仅适用于 php 7.0.0 之前的二维数组。array_column

于 2017-02-22T19:20:03.233 回答