Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.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,我正在从提要中提取XML。有一个标签名为: <georss:point>34.234 -34.435</georss:point> 当我放置这些echo语句(在最后两行代码中)时,变量会回显到屏幕上。但是,当我将这些变量放在数组之外时,这些值不会得到回显。 我试图从数组外部获取这些变量,以便将这些变量插入数据库。我已经尝试在varaiables上提取,但这会作为“数组”打印回屏幕。。。不确定从数组中提取这些变量需要做什么。谢谢,我认为: $lat = array($l

我正在从提要中提取XML。有一个标签名为:

<georss:point>34.234 -34.435</georss:point> 
当我放置这些echo语句(在最后两行代码中)时,变量会回显到屏幕上。但是,当我将这些变量放在数组之外时,这些值不会得到回显。 我试图从数组外部获取这些变量,以便将这些变量插入数据库。我已经尝试在varaiables上提取,但这会作为“数组”打印回屏幕。。。不确定从数组中提取这些变量需要做什么。谢谢,

我认为:

$lat = array($latlng[0]);
$lng = array($latlng[1]);
应该是:

$lat = $latlng[0];
$lng = $latlng[1];
我认为:

$lat = array($latlng[0]);
$lng = array($latlng[1]);
应该是:

$lat = $latlng[0];
$lng = $latlng[1];
我认为,将数组(…)放置在$latlng[…]左右就可以了

$lat = $latlng[0];
$lng = $latlng[1];
我认为,将数组(…)放置在$latlng[…]左右就可以了

$lat = $latlng[0];
$lng = $latlng[1];

用这样的版本替换您的foreach

$new_array = array();
foreach($items as $item) 
{     
    $latlng = explode(' ',trim($item->point));
    $new_array[] = array('lat'=>$latlng[0],'lng'=>$latlng[1]); 
}

var_dump($new_array);

这将为您提供一个lat/long值数组。

用这样的版本替换您的foreach

$new_array = array();
foreach($items as $item) 
{     
    $latlng = explode(' ',trim($item->point));
    $new_array[] = array('lat'=>$latlng[0],'lng'=>$latlng[1]); 
}

var_dump($new_array);
这将为您提供一个lat/long值数组。

一些观察结果

1) 您可以在字符串中替换而不是替换
2)
array('lat'=>$latlng[0],'lng'=>$latlng[1])什么也不做。这是一家死气沉沉的商店。
3) 而不是

$lat = array($latlng[0]);
$lng = array($latlng[1]);
echo $lat;
echo $lng;  
您可以执行:
echo$latlng[0]。-。$latlng[1]
如果您尝试
echo
一个数组,您将始终得到
array

使用特定索引回显单个元素

4) 或者,您可以使用直接存储变量
list($lat,$long)=分解('',修剪($item->point))

编辑 要将多个结果插入数据库,请将结果存储在数组中:

$lat_long = array();
foreach($items as $item){
    $lat_long[] = explode(' ', $item);
}
然后,稍后迭代该数组并执行数据库插入

foreach($lat_long as $point){   
  //do SQL injection prevention as well
  //INSERT INTO your_table (`lat`, `long`) VALUES ($point[0], $point[1]);
}
一些观察

1) 您可以在字符串中替换而不是替换
2)
array('lat'=>$latlng[0],'lng'=>$latlng[1])什么也不做。这是一家死气沉沉的商店。
3) 而不是

$lat = array($latlng[0]);
$lng = array($latlng[1]);
echo $lat;
echo $lng;  
您可以执行:
echo$latlng[0]。-。$latlng[1]
如果您尝试
echo
一个数组,您将始终得到
array

使用特定索引回显单个元素

4) 或者,您可以使用直接存储变量
list($lat,$long)=分解('',修剪($item->point))

编辑 要将多个结果插入数据库,请将结果存储在数组中:

$lat_long = array();
foreach($items as $item){
    $lat_long[] = explode(' ', $item);
}
然后,稍后迭代该数组并执行数据库插入

foreach($lat_long as $point){   
  //do SQL injection prevention as well
  //INSERT INTO your_table (`lat`, `long`) VALUES ($point[0], $point[1]);
}

只有一个或多个?只有一个或多个?嗨,布莱恩,你的建议对我更有意义。。。但是,当我实现时,值是相同的。列表($lat,$long)=分解('',修剪($item->point));lat和lng在所有23个项目上都是相同的“我明白了,”盲人说!非常感谢你,布莱恩!嗨,布莱恩,你的建议对我来说更有意义。。。但是,当我实现时,值是相同的。列表($lat,$long)=分解('',修剪($item->point));lat和lng在所有23个项目上都是相同的“我明白了,”盲人说!非常感谢你,布莱恩!