Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.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数组到2d Javascript数组_Php_Javascript - Fatal编程技术网

php数组到2d Javascript数组

php数组到2d Javascript数组,php,javascript,Php,Javascript,我正在通过php将两个SQL字段传递给javascript。我已经阅读了许多关于如何创建多维javascript数组的教程。我感到困惑的是如何从php编码到javascript。我看过一些关于如何将php数据转换成javascript的教程,但没有一个是关于如何使用二维实现这一点的 我的第一个问题是,如果要创建多维数组,我需要在声明java数组之前计算sql数据中的记录数,对吗 更新: 我将数据转换为JSON格式,如下所示。有没有一种方法可以让我把所有的内容打印到网页上,这样我就可以看到它们,然

我正在通过php将两个SQL字段传递给javascript。我已经阅读了许多关于如何创建多维javascript数组的教程。我感到困惑的是如何从php编码到javascript。我看过一些关于如何将php数据转换成javascript的教程,但没有一个是关于如何使用二维实现这一点的

我的第一个问题是,如果要创建多维数组,我需要在声明java数组之前计算sql数据中的记录数,对吗

更新:

我将数据转换为JSON格式,如下所示。有没有一种方法可以让我把所有的内容打印到网页上,这样我就可以看到它们,然后缩小显示的范围

更新三:

代码:

工作代码:

 $data = mysql_query("SELECT * FROM gpsdata");     
$aData = array();
while($row = mysql_fetch_assoc($data))
   $aData[$row['idgpsdata']] = array($row['userID'],$row['date'],$row['lat'], $row['longi'], $row['alt']);


 $json = json_encode($aData);
echo $json;

首先填充PHP数组,这比为javascript数组构建字符串容易。然后——正如ThiefMaster在评论中所说——使用JSON生成javascript数组。

在PHP中,您可以使用

在Javascript中

var obj = JSON.parse('{"1":[3,4],"2":[4,5]}');
for(var i in obj){
    for(var j in obj[i]) {
        console.log(obj[i][j]);
    }
}
用于Gecko(类似Firefox),用于跨浏览器javascript JSON解析检查或

PHP/jQuery中的示例实现如下:

json.php

$arr = array( 1=>array('Name', 'Age'),
              2=>array('Fares','18'));
$json = json_encode($arr);
echo $json;
json.html

<html><head></head>
<body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"></script>
<script>
$.getJSON('json.php', function(data) {
  var items = [];

  $.each(data, function(key, val) {
    items.push('<li id="' + key + '">' + val + '</li>');
  });

  $('<ul/>', {
    'class': 'my-new-list',
    html: items.join('')
  }).appendTo('body');
});
</script>
</body>
</html>

$.getJSON('json.php',函数(数据){
var项目=[];
$。每个(数据、函数(键、值){
items.push(“
  • “+val+”
  • ”); }); $(“
      ”{ “类”:“我的新列表”, html:items.join(“”) }).附于(“主体”); });
    您可以缩短当前代码:
    var scriptAr=
    @LorenZimmer Yea,您错误地使用了mysql\u fetch\u数组。这一次只能得到一行。编程语言不了解表,所以一次只能获取一行。您需要实际构建2D数组。更新。。。上面的代码返回所有值,但不返回键。对我来说奇怪的是,它在插入@Laith Shadeed的java例程时会创建重复的值!如果我在两者之间添加变量$json,它也可以在外部使用吗?是的,它可以在脚本的任何PHP部分中使用。谢谢你的建议。在我最初的问题中,您将看到,我已经替换了一些代码来将sql结果转换为json,但我还没有完全成功。我输入错误的任何想法。我感觉我没有正确地将信息传递到数组中。
    var obj = JSON.parse('{"1":[3,4],"2":[4,5]}');
    for(var i in obj){
        for(var j in obj[i]) {
            console.log(obj[i][j]);
        }
    }
    
    $arr = array( 1=>array('Name', 'Age'),
                  2=>array('Fares','18'));
    $json = json_encode($arr);
    echo $json;
    
    <html><head></head>
    <body>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"></script>
    <script>
    $.getJSON('json.php', function(data) {
      var items = [];
    
      $.each(data, function(key, val) {
        items.push('<li id="' + key + '">' + val + '</li>');
      });
    
      $('<ul/>', {
        'class': 'my-new-list',
        html: items.join('')
      }).appendTo('body');
    });
    </script>
    </body>
    </html>