【问题标题】:php array (of arrays) to javascriptphp数组(数组)到javascript
【发布时间】:2015-04-07 06:23:09
【问题描述】:

我有一个包含 GPS 坐标的 MySQL 数据库。 这是我检索坐标的部分 PHP 代码;

$sql = "SELECT lat, lon FROM gps_data";
$stmt=$db->query($sql); 
$result=$stmt->fetchAll();

现在我需要将返回的 PHP 数组“转换”为 javascript 中的数组数组。这个我已经试过了;

var js_var = <?php echo json_encode($result); ?>;

但这不是我们想要的输出

电流输出:

var js_var = [{"lat":"61.883350","0":"61.883350","lon":"8.551115","1":"8.551115"},{"lat":"61.883380","0":"61.883350","lon":"8.551715","1":"8.551715"}];

期望的输出:

var js_var =
[[61.883350,8.551115],[61.883380,8.551715]];

如何做到这一点?

【问题讨论】:

  • 打印您的阵列,然后只有我们会协助?

标签: javascript php mysql arrays


【解决方案1】:

你可以使用.map,像这样

var js_var = [{"lat":"61.883350","0":"61.883350","lon":"8.551115","1":"8.551115"},{"lat":"61.883380","0":"61.883350","lon":"8.551715","1":"8.551715"}];

var result = js_var.map(function (el) {
  return [el.lat, el.lon];
});

console.log(result);

【讨论】:

    【解决方案2】:

    试试

    $sql = "SELECT lat, lon FROM gps_data";
    $stmt=$db->query($sql); 
    $result=$stmt->fetchAll();
    $final=array();
    foreach($result as $row) {
        $final[]=array($row[0],$row[1]);
    }
    

    还有

    var js_var = <?php echo json_encode($final); ?>;
    

    【讨论】:

    • 现在它输出为 OP 需要,我已经根据他的需要形成了新的数组
    猜你喜欢
    • 2011-01-09
    • 2014-03-30
    • 1970-01-01
    • 1970-01-01
    • 2015-10-06
    • 2013-09-18
    • 2011-01-17
    • 1970-01-01
    相关资源
    最近更新 更多