Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php中字符串到二维数组的转换_Php_Arrays - Fatal编程技术网

php中字符串到二维数组的转换

php中字符串到二维数组的转换,php,arrays,Php,Arrays,我只是想问一下如何在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.49

我只是想问一下如何在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)
              );

对于一个新的贡献者,我认为使用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,
  ),
)