【问题标题】:Foreach array within an object对象内的 foreach 数组
【发布时间】:2014-08-07 08:42:14
【问题描述】:

我有一个 PHP 对象。对象中的值之一在数组中。我试图让 foreach 只读取对象中的数组,但它似乎不起作用。

PHP:

foreach ($object->ArrayName as $value) {

    echo $value;

}

有什么办法吗?

【问题讨论】:

  • foreach($obj->arrayName as $array) { foreach($array as $item) { echo $item; }} ?
  • 首先 var_dump($object) 并把你的输出
  • it doesn't seem to be working 到底是什么意思?你没有输出?您收到错误消息?

标签: php arrays object foreach


【解决方案1】:

好吧,如果你有一个对象但你不知道哪个属性是一个数组,你需要把它们全部捕获并验证它们是否是一个数组:

// get each value of the object and call it as property
foreach(get_object_vars($object) as $property) {

    // if this property is an array...
    if (is_array($property) {

        // ... access to every value of that array
        foreach($property as $value) {

            // $property is your array and $value is every value
            // here you can execute what you need

        }

    }

}

【讨论】:

    【解决方案2】:

    使用 is_array($obj) 验证它是否是一个数组。

    【讨论】:

      【解决方案3】:

      你说你的 php 对象包含数组,因此你需要像这样使用 2 个 foreach 循环。

      <?php
          foreach($object->ArrayName as $value) {
              foreach($value as $item) {
                  echo $item;
              }
          }
      ?>
      

      【讨论】:

      • 直接取自我的comment...
      • 任何基本的 PHP 程序员都知道它。不需要从你那里拿走它:)
      【解决方案4】:

      如果循环与类中的对象一起使用,则使用$this 代替:

      foreach ($this->ArrayName as $value) {
      
          echo $value;
      
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-10
        • 2010-11-24
        • 2021-04-14
        • 1970-01-01
        • 2012-11-22
        • 2020-03-14
        • 1970-01-01
        相关资源
        最近更新 更多