从sqlite PHP转换数据

converting data from sqlite PHP

本文关键字:数据 转换 PHP sqlite      更新时间:2023-09-26

我在sqlite数据库中存储了许多坐标。我需要将这些坐标用于传单上的热图。我正在使用以下插件:https://github.com/Leaflet/Leaflet.heat

数据需要采用以下格式:

var addressPoints = [
[52.344161, 4.912279],
[52.342425, 4.913038],
[52.342034, 4.913256],
[52.341987, 4.912462]];

我使用以下方法从 PHP 中的 sqlite 数据库中提取数据:

$db = new SQLite3('jwtrack.sqlite');
$results = $db->query("SELECT coord FROM trackjw");
while ($row = $results->fetchArray()) {
echo json_encode($row['coord']);
}
$db->close();

检索的数据如下所示:

"52.344161000, 4.912279000""52.342425000, 4.913038200""52.342034000, 4.913256000""52.341987000, 4.912462000""52.342336000, 4.912106000"

如何以正确的方式将SQLite数据插入到"var addressPoints"中?

提前感谢斯克,

智威

如果数据遵循相同的格式,开头和结尾的引号以及对之间的双引号,则以下内容应生成一个以该对作为条目的数组。

$data='"52.344161000, 4.912279000""52.342425000, 4.913038200""52.342034000, 4.913256000""52.341987000, 4.912462000""52.342336000, 4.912106000"';
$pairs=explode('""',trim($data,'"'));
print_r($pairs);

输出:

Array
(
    [0] => 52.344161000, 4.912279000
    [1] => 52.342425000, 4.913038200
    [2] => 52.342034000, 4.913256000
    [3] => 52.341987000, 4.912462000
    [4] => 52.342336000, 4.912106000
)

但是,您可以更改初始php,这将产生不同的数据

$db = new SQLite3('jwtrack.sqlite');
$results = $db->query("SELECT coord FROM trackjw");
$json=array();
while( $row = $results->fetchArray() ) {
    $json[]=$row['coord'];
}
$db->close();
$json=json_encode( $json );
echo $json;

如果您需要这个而没有值周围的引号......

$json=str_replace('"','',$json);

在 JavaScript 中,您可以执行以下操作:

echo "var addressPoints={$json};";