PHP访问数组

时间:2011-02-28 15:56:07

标签: php arrays wordpress

我有点困惑。

我有一个数组:

<?php 

$terms = get_the_terms($post->ID, 'pf');
        print_r($terms);
?>

它输出:

  

数组([15] =&gt; stdClass对象(   [term_id] =&gt; 15 [name] =&gt;文字[slug]   =&GT; text [term_group] =&gt; 0 [term_taxonomy_id] =&gt; 33 [分类学] =&gt;   pf [描述] =&gt; PF文章。   [parent] =&gt; 0 [count] =&gt; 3 [object_id]   =&GT; 694))

我只想输出slug(本例中为“text”)而不是整个数组。

所以我在做:

<?php $terms = get_the_terms($post->ID, 'pf');
             echo $terms["slug"]; ?>

它什么也没输出。

这也没有结果:

echo "{$terms['slug']}";

有什么想法吗?

已更新!

我不能使用$ term [15] - &gt; slug,因为我的脚本将基于[分类法](在这种情况下为pf)! :)所以没有foreach循环就不可能做到这一点?

3 个答案:

答案 0 :(得分:5)

术语数组15索引包含像这样的对象访问

echo $term[15]->slug

答案 1 :(得分:3)

在arry内部的索引15处有stdclass对象,可以通过强制转换/访问数组但是尝试这个insted

$term[15]->slug

答案 2 :(得分:-1)

跟进Pekka的回答,如果你重新格式化你的print_r()输出,你会得到:

Array (
    [15] => stdClass Object (
        [term_id] => 15
        [name] => Text
        [slug] => text
        [term_group] => 0
        [term_taxonomy_id] => 33
        [taxonomy] => pf
        [description] => An PF article.
        [parent] => 0
        [count] => 3
        [object_id] => 694
    )
)

当使用print_r()转储变量时,最好使用<pre>标记来包围调用 - print_r不会对数据进行任何HTML处理,因此它对数组进行了很好的缩进在HTML页面中查看时丢失。使用<pre>标记可保留格式。使用var_dump()将执行相同操作,但也将类型/大小数据添加到转储输出。