在php中循环遍历数组的问题[重复]

Posted

技术标签:

【中文标题】在php中循环遍历数组的问题[重复]【英文标题】:Problem with looping through arrays in php [duplicate] 【发布时间】:2022-01-21 08:12:56 【问题描述】:

我希望能够导航到下表中的坐标:


  "type": "Polygon",
  "coordinates": [
    [
      [
        37.02255983,
        -1.43654556
      ],
      [
        37.08298464,
        -1.41777117
      ],
      [
        37.03893607,
        -1.44272341
      ],
      [
        36.96500169,
        -1.48081985
      ],
      [
        36.91303988,
        -1.47429887
      ]
    ]
  ]

我正在从数据库中提取这些数据,并且我的第一级循环导致上述对象数组。 我的一级代码如下:

<?php
    $locations = \App\Model::all();
    foreach ($locations as $key=>$location)
    
      $polygonXML = $location['polygon'];
      dd($polygonXML);
    
?>

我想以坐标键结束。

【问题讨论】:

发布您当前的代码 【参考方案1】:

你拥有的数据是JSON格式的,所以你必须先用json_decode()将它转换成PHP中的可迭代对象,这会将它转换成一个数组,然后可以使用一个简单的foreach循环去通过"coordinates" 表中的每个条目。

<?php

// Encode your JSON data from where it is coming from.
$data = json_decode('
  "type": "Polygon",
  "coordinates": [
    [
      [
        37.02255983,
        -1.43654556
      ],
      [
        37.08298464,
        -1.41777117
      ],
      [
        37.03893607,
        -1.44272341
      ],
      [
        36.96500169,
        -1.48081985
      ],
      [
        36.91303988,
        -1.47429887
      ]
    ]
  ]
', true);

foreach($data["coordinates"][0] as $coodinate)

    var_dump($coodinate[0] . ", " . $coodinate[1]);

输出:

string(24) "37.02255983, -1.43654556"
string(24) "37.08298464, -1.41777117"
string(24) "37.03893607, -1.44272341"
string(24) "36.96500169, -1.48081985"
string(24) "36.91303988, -1.47429887"

【讨论】:

以上是关于在php中循环遍历数组的问题[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在Javascript中循环遍历数组的元素[重复]

php foreach 嵌套循环大数组很慢?

forEach 在javascript中同时循环遍历两个数组[重复]

如何在 React JSX 中循环遍历数组中的某些项目 [重复]

PHP中如何使用foreach结构遍历数组?

循环遍历 JSON 数组