【问题标题】:foreach inside static array静态数组中的foreach
【发布时间】:2015-03-04 17:26:51
【问题描述】:

如何用 foreach 循环替换此处的位置?当我将 foreach 放入数组时,代码会中断。我猜答案与创建一个 foreach 变量然后将其输入为级别值有关吗?

这是我的数组

$data = array(
'name' => Locations,
'data' => '{
    "title":"USA",
    "location":"World",
    "levels":[
        {
            "id":"states",
            "title":"States",
            "locations":[
                {
                    "id":"ca",
                    "title":"California",
                    "pin":"hidden",
                    "x":"0.0718",
                    "y":"0.4546",
                },
                {
                    "id":"wa",
                    "title":"Washington",
                    "pin":"hidden",
                    "x":"0.1331",
                    "y":"0.0971"
                }
            ]
        }
    ]
}'

这是我当前的 foreach。

foreach ($response->records as $record) {
    $id = $record->Id;
    $title = $record->Title;
    $pin = $record->Pin;
    $x = $record->X;
    $y = $record->Y;

    echo {
        "id": $id,
        "title": $title,
        "pin": $pin,
        "x": $x,
        "y": $y
    }
}

任何帮助将不胜感激。

【问题讨论】:

  • 已添加。感谢您的提示。
  • 你的回复是 $response 还是 $data?
  • $response, $data 只是一个更容易更新表格的变量。

标签: php arrays variables foreach


【解决方案1】:
$arr = array();
foreach ($response->records as $record) {
    $r['id'] = $record->Id;
    $r['title'] = $record->Title;
    $r['pin'] = $record->Pin;
    $r['x'] = $record->X;
    $r['y'] = $record->Y;

    $arr[] = $r;
}

echo json_encode($arr);

【讨论】:

  • 这看起来可能有效,我对这个答案的唯一担心是它在每个结果之后都缺少一个逗号。除了最后的结果。正如我在位置下的原始数组中显示的那样。
  • 行得通!谢谢你。现在我只需要弄清楚为什么我不能将变量放回我的初始数组中。我添加了 $locations = json_encode($arr);但是当我在数组 "locations":'$locations' 中写入时,它显示 Parse error: syntax error, unexpected '$locations' (T_VARIABLE), expecting ')'
  • 我最终将其全部发布在一个单独的问题中。 stackoverflow.com/questions/28865296/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-15
  • 2011-02-09
  • 2016-01-06
  • 1970-01-01
  • 2023-02-10
相关资源
最近更新 更多