PHP分解数组变量
我正在从提要中提取XML。有一个标签名为:PHP分解数组变量,php,arrays,Php,Arrays,我正在从提要中提取XML。有一个标签名为: <georss:point>34.234 -34.435</georss:point> 当我放置这些echo语句(在最后两行代码中)时,变量会回显到屏幕上。但是,当我将这些变量放在数组之外时,这些值不会得到回显。 我试图从数组外部获取这些变量,以便将这些变量插入数据库。我已经尝试在varaiables上提取,但这会作为“数组”打印回屏幕。。。不确定从数组中提取这些变量需要做什么。谢谢,我认为: $lat = array($l
<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个项目上都是相同的“我明白了,”盲人说!非常感谢你,布莱恩!