【问题标题】:Can't echo items from array无法回显数组中的项目
【发布时间】:2014-11-10 00:22:38
【问题描述】:

我有一个这样的数组...

$myarray = Array (
    [docs] => Array(
        [0] => Array ([property_imgurl] => http://www.example.com/image1.jpg) 
        [1] => Array ([property_imgurl] => http://www.example.com/image2.jpg) 
        [2] => Array ( [property_imgurl] => http://www.example.com/image3.jpg) 
        [3] => Array ( [property_imgurl] => http://www.example.com/image4.jpg)
     )
);

我正在尝试回应

foreach ($myarray as $myarrays) {
    echo $myarray[property_imgurl];
}

但这并没有返回任何结果,我做错了什么?

【问题讨论】:

  • 这行得通吗? echo $myarrays[property_imgurl];
  • 请先检查这个 DONTs 文档:php.net/manual/en/…

标签: php arrays foreach


【解决方案1】:

您的密钥无效..

foreach ($myarray["docs"] as $myarrays) {
 echo $myarrays["property_imgurl"];
}

Live preview

【讨论】:

  • 那么就没有输入了。 OP 给出了一个索引为docs 的数组。
  • 确实如此。我从来没有暗示它没有。我只是说 OP 给了一个带有定义索引的数组(并且从未提到它会改变),所以在循环中包含一个循环似乎很浪费。
【解决方案2】:

您需要再添加一个循环尝试

foreach ($myarray as $v) {
   foreach ($v as $v1) {
     echo $v1['property_imgurl'];
   }
}

【讨论】:

  • 为什么在循环中需要一个循环?看起来很浪费。
【解决方案3】:

您的数组在这里似乎是错误的..

试试这个:

$myarray = 
    Array (
       "docs"=> 
           Array(
              "0" => Array ( "property_imgurl" => "http://www.example.com/image1.jpg" ),
              "1" => Array ( "property_imgurl" => "http://www.example.com/image2.jpg" ) ,
              "2" => Array ( "property_imgurl" => "http://www.example.com/image3.jpg" ) ,                 
              "3" => Array ( "property_imgurl" => "http://www.example.com/image4.jpg"                )              )
   );

然后像这样迭代你的循环:

        foreach($myarray['docs'] as $key=>$value)
        {
            echo $value['property_imgurl'];
        }

【讨论】:

  • 也许您的措辞不正确,但数组 ($myarray) 是正确的。 (在 OP 提供的意义上是正确的)。唯一错误的是循环。
猜你喜欢
  • 2017-01-27
  • 2021-04-28
  • 1970-01-01
  • 2019-02-25
  • 1970-01-01
  • 2013-11-02
  • 1970-01-01
  • 2012-06-10
  • 2018-08-24
相关资源
最近更新 更多