我只想问一下如何在php中将字符串转换为二维数组。请参考我下面的示例代码。
$coordinates = "9.499819 123.920318,9.490845 123.916563,9.484644 123.922292,9.49148 123.931519,9.499755 123.925683,9.499819 123.920318";我想把上面的字符串转换成下面的数组,并把它赋值给变量。
$polygon = array(array('lat' => 9.499819,'lng'=>123.920318),
array('lat' => 9.490845,'lng'=>123.916563),
array('lat' => 9.484644,'lng'=>123.922292),
array('lat' => 9.49148,'lng'=>123.931519),
array('lat' => 9.499755,'lng'=>123.925683),
array('lat' => 9.499819,'lng'=>123.920318)
);发布于 2020-09-10 19:02:50
对于一个新的贡献者,在我看来,使用foreach的解决方案更容易理解。这些步骤在代码中进行了注释。
$coordinates = "9.499819 123.920318,9.490845 123.916563,9.484644 123.922292,9.49148 123.931519,9.499755 123.925683,9.499819 123.920318";
$polygon = explode(',',$coordinates);
/*
array (
0 => "9.499819 123.920318",
1 => "9.490845 123.916563",
*/
foreach($polygon as $index => $latLng){
//The element $latLng is split into two variables with list and explode.
list($lat,$lng) = explode(' ',$latLng);
//The elements are replaced by a new array with the variables $lat and $lng as float
$polygon[$index] = ['lat' => (float)$lat, 'lng' => (float)$lng];
}
//test output
echo '<pre>';
var_export($polygon);输出:
array (
0 =>
array (
'lat' => 9.499819,
'lng' => 123.920318,
),
1 =>
array (
'lat' => 9.490845,
'lng' => 123.916563,
),
2 =>
array (
'lat' => 9.484644,
'lng' => 123.922292,
),
3 =>
array (
'lat' => 9.49148,
'lng' => 123.931519,
),
4 =>
array (
'lat' => 9.499755,
'lng' => 123.925683,
),
5 =>
array (
'lat' => 9.499819,
'lng' => 123.920318,
),
) https://stackoverflow.com/questions/63825178
复制相似问题