【问题标题】:How do I loop through this array with a foreach loop?如何使用 foreach 循环遍历这个数组?
【发布时间】:2017-06-07 15:01:42
【问题描述】:

我想用 foreach 循环遍历我的数组,但结果好坏参半。

下面的数组存储在变量$result中。

当我运行 foreach ($result as $call) { 时,它只循环一次,尽管数组中有 3 个项目。谁能解释一下原因?

谢谢。

Array
(
    [item] => Array
        (
            [0] => Array
                (
                    [CallRef] => 1025742698
                )
            [1] => Array
                (
                    [CallRef] => 1025786953
                )
            [2] => Array
                (
                    [CallRef] => 1025786953
                )
        )
)

【问题讨论】:

  • 它是一个包含一个元素的数组,它是一个包含三个元素的数组。解决方案:循环遍历内部数组.
  • 其实$result只有一个数组项。 那个 Item有3个。
  • 你要仔细看,不能直接忽略转储中的[item]

标签: php


【解决方案1】:

这是多维的,所以你的第一个数组只有一个索引;因此 1 个结果,恰好是另一个数组。

你会想做这样的事情。

foreach($result['item'] as $res){
    //some action
}

更多信息在这里:Looping a multidimensional array in php

【讨论】:

  • 没有$result[0],应该是$result['item']
  • 没有注意到内部数组是关联的。已修复,谢谢。
  • 非常感谢,@Kaylined - 你给了我很大的帮助 :-)
【解决方案2】:
foreach($result['item'] as $item){
   echo $item['CallRef']
}

【讨论】:

    【解决方案3】:

    像这样试试..

       foreach ($result['item'] as $key => $value)
          {
           echo $value['CallRef']."<br/>"
          }
    

    【讨论】:

      【解决方案4】:

      随它去吧。如果您的主数组如下所示:

      $data=array('item' => array(array('CallRef' => 1025742698),array('CallRef' => 1025786953), array('CallRef' => 1025786953)));
      
      foreach($data['item'] as $data_res)
      {
          echo $data_res['CallRef']."</br>";
      }
      

      【讨论】:

        猜你喜欢
        • 2013-12-16
        • 2022-11-18
        • 1970-01-01
        • 2017-03-22
        • 1970-01-01
        • 1970-01-01
        • 2013-03-26
        • 2017-09-12
        • 1970-01-01
        相关资源
        最近更新 更多