在foreach中调用JSON中的父字段

时间:2012-07-16 22:58:00

标签: php arrays object json

我可能在这里遗漏了一些简单的东西,但无论如何我觉得最好问。

我有以下代码:

$newarray = json_decode($jsoncode);
$rad = 24;
foreach ($newarray->objname as $obj)
{
    echo "<map name='" . $mapname . "'>";
    echo "<area shape=\"circle\" coords='" . $obj->x . "," . $obj->y . "," . $rad . "' alt='" . $obj . "'>";
    echo '</map>';
}

来自手动创建的json字符串:

$jsoncode = '{"objname":{"Forest 1":{"x":120,"y":120},"Forest 2":{"x":434,"y":225}}}';

我在尝试调用$ obj变量以在foreach中使用时出错。是否有类似的东西我必须添加它以显示存储在变量中的名称?

P.S。我对其余代码没有任何问题

1 个答案:

答案 0 :(得分:2)

PHP的foreach语法应该是这样的 -

foreach ($array AS $key=>$object){ 
  ... 
}

所以你的代码应该是这样的 -

foreach ($newarray AS $objectName => $obj)
  • $objectName$newarray
  • 中的索引
  • $obj是数组中的实际元素。

http://php.net/manual/en/control-structures.foreach.php

文档说明了foreach语句的语法 -

  

foreach (array_expression as $value)
      statement
   foreach (array_expression as $key => $value)
      statement