【问题标题】:PHP accessing an arrayPHP 访问数组
【发布时间】:2011-02-28 15:56:06
【问题描述】:

我有点困惑。

我有一个数组:

<?php 

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

它输出:

数组 ( [15] => 标准类对象 ( [term_id] => 15 [name] => 文本 [slug] => 文本 [term_group] => 0 [term_taxonomy_id] => 33 [taxonomy] => pf [描述] => 一篇 PF 文章。 [父] => 0 [计数] => 3 [object_id] => 694))

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

所以我在做:

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

它什么也不输出。

这也没有给出任何结果:

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

有什么想法吗?

更新!!!

我不能使用 $term[15]->slug,因为我的脚本将基于 [taxonomy](在本例中为 pf)! :) 那么如果没有 foreach 循环就不可能做到这一点?

【问题讨论】:

    标签: php arrays wordpress


    【解决方案1】:

    terms 数组 15 索引包含这样的对象访问

    echo $term[15]->slug
    

    【讨论】:

    • 有没有办法通过“分类法”(在这种情况下为 pf)访问 $terms?因为 ID 可能会有所不同。
    • @meritum:ID 会有所不同,您必须在此处使用foreach 循环。 foreach($term as $object) { echo $object-&gt;slug; }
    【解决方案2】:

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

    $term[15]->slug
    

    【讨论】:

      【解决方案3】:

      根据 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() 转储变量时,最好用 &lt;pre&gt; 标签包围调用 - print_r 不会对数据进行任何 HTML 化,因此它对数组所做的良好缩进会丢失在 HTML 页面中查看。使用&lt;pre&gt; 标记可以保留格式。使用var_dump() 会做同样的事情,但也会在转储输出中添加类型/大小数据。

      【讨论】:

      • 我没有投反对票,但这并不能回答 OP 的问题
      • 在我写这篇文章的时候,pekka 的答案仍然在列表中。但是,他现在已将其删除。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-09
      • 2011-07-12
      • 2016-06-09
      • 2012-06-01
      • 2012-05-29
      • 2016-12-25
      相关资源
      最近更新 更多