0

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

我有以下代码:

$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 中使用时出现错误。有没有我必须添加的东西才能显示存储在变量中的名称?

PS我对其余代码没有问题

4

1 回答 1

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

于 2012-07-16T23:01:00.737 回答