【问题标题】:Print array elements in PHP在 PHP 中打印数组元素
【发布时间】:2015-04-22 14:12:56
【问题描述】:

我使用print_r(array_values($arr)) 有以下数组输出:

Array
(
    [0] => 000
    [1] => 
    [2] => 1
    [3] => stdClass Object
        (
            [kjennemerke] => DN 45034
            [kjennemerkeFarge] => SORT
            [etternavn] => RAMBERG
            [fornavn] => BJØRN
        )
)

如何访问$arr[3] 中的stdClass 对象并打印每个元素?

【问题讨论】:

  • echo $arr[3]->kjennemerke.
  • @MarcB:我认为 Bjorn 想要列出所有对象属性,但实际上并不知道对象包含哪些属性。
  • 是的,这是访问任何内容的基本语法。 foreach() 将像任何其他“数组”类型的结构一样迭代对象。
  • @MarcB:这就是我的意思。你的例子没有解释迭代。

标签: php arrays


【解决方案1】:

你的数组已经打印了吗? 该对象包含:

(
        [kjennemerke] => DN 45034
        [kjennemerkeFarge] => SORT
        [etternavn] => RAMBERG
        [fornavn] => BJØRN
    )

如果你想从你的对象中寻找,你可以这样做:

<?php
foreach($arr[3] as $k => $v):
    echo "Key:".$k."<br>";
    echo "Value:".$v."<br>";
endforeach; 
?>

【讨论】:

    【解决方案2】:

    如果它始终是 stdClass 元素,您可以执行以下操作:

    foreach($array['stdClass'] as $val) {
        echo $val."<br>";
    }
    

    【讨论】:

      【解决方案3】:

      这将遍历 stdClass 项目,并打印它们。

      foreach( $array[3] as $key => $value )
      {
          echo $key . ": " . $value . "<br>";
      }
      

      如果您不知道数组中的哪个项目是对象,您可以这样做:

      foreach( $array as $item )
      {
          if ( $item instanceof stdClass )
          {
              foreach( $item as $key => $value )
              {
                  echo $key . ": " . $value . "<br>";
              }
          }
      }
      

      如果数组中有多个 stdClass 对象,它将对所有这些对象执行此操作。

      【讨论】:

        【解决方案4】:

        使用$arr[3],您可以访问您正在寻找的元素。现在您可以使用foreach 循环来打印对象的每个元素。尝试:

        foreach($arr[3] as $element) { 
          echo $element . "<br />";
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-03-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多