【问题标题】:JSON PHP foreach empty valueJSON PHP foreach 空值
【发布时间】:2016-09-27 01:00:44
【问题描述】:

我正在使用 PHP 和 JSON。我有这个 JSON foreach 循环的例子,在这个例子中我想得到纬度/经度来在谷歌地图中添加一个标记:

"data": [
       {
          "end_time": "2016-02-09T22:30:00-0200",
          "name": "6\u00ba Rebanh\u00e3o de Carnaval - Comunidade Cen\u00e1culo",
          "place": {
             "name": "Comunidade Cen\u00e1culo",
             "location": {
                "city": "Franca",
                "country": "Brazil",
                "latitude": "",
                "longitude": "",
                "state": "SP",
                "street": "Dom Pedro I, 1040, Jardim Petr\u00e1glia"
             },
             "id": "410657548946610"
          },
          "start_time": "2016-02-05T19:30:00-0200",
          "id": "940527599373114"
       }
    ]

我的问题是,经纬度的一些结果是空的。我想在它上面加上一个特定的值,但是在每个空的地方我想添加 lat + 0.02。

例如,在第一个空值中我想把这个 lat 40.700106 放在下一个空值中,我想把这个 40.700106 + 0.02 放在下一个空值中。

我只是不想在同一位置有 2 个标记。

我该怎么做?

编辑:

foreach($json3 ->data as $mydata1)
{
$latitude = $mydata1->place->location->latitude;
if(empty($latitude ))
    {

        $latitude = $latitude + 0.02;
        echo ' lat :'.$latitude ;
    }
}

这样我替换了空值,但他们不会在每个值上添加 + 0.02

【问题讨论】:

  • 你的代码在哪里?您第一次尝试解决问题时遇到了什么问题?
  • 我编辑了我的代码。
  • @reemy 修改你需要在foreach中引用的$json3...foreach ($json3->data as &$mydata1)

标签: php json foreach


【解决方案1】:

您可以保存之前的纬度并使用它。

类似这样的:

$previousLatitude = null;
foreach($json3 ->data as $mydata1) {
    $latitude = $mydata1->place->location->latitude;
    if(empty($latitude ))
    {
        $latitude = $previousLatitude + 0.02;
        echo ' lat :'.$latitude ;
    }

    $previousLatitude = $latitude
}

【讨论】:

  • thx 伙计...我只是修改了一点,但我从你的回答中得到了逻辑,它起作用了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-05
  • 2012-05-06
  • 1970-01-01
  • 1970-01-01
  • 2013-04-15
相关资源
最近更新 更多