将二维数组从PHP返回到JavaScript

时间:2014-11-07 01:30:59

标签: javascript php jquery

我的JavaScript调用PHP脚本,该脚本在磁盘上构建文件夹的二维数组。文件夹名称,文件数和总大小包含在数组中,因此数组如下所示:

folders[$i][0] = $folder_name;
folders[$i][1] = $files_in_folder;
folders[$i][2] = $folder_size;

通过JavaScript进行调用:

$.post('myajax.php', {op : get_folders'},       
                           function(responseTxt, statusTxt, xhr) {  
                           });

让PHP返回数组的最佳方法是什么,以及JavaScript或jQuery的最佳方法是将其恢复为二维数组以便于访问?

谢谢

3 个答案:

答案 0 :(得分:1)

JSON是一种很好的方法,因为它是在JavaScript中构建数据的事实标准。 PHP数组可用于生成json_encode()的JSON。

使用JSON API最佳实践,以下是构建JSON响应的方法:

{folders: [
 {name: 'Folder name', size: 513, numberOfFiles: 7},
 {name: 'Another folder', size: 1214, numberOfFiles: 34},
 etc...
]} 

myajax.php中的代码将遵循:

<?php
$folderItems = array();

foreach($folders as $folder) {
  array_push($folderItems, array(
    "name" => $folder[0],
    "numberOfFiles" => $folder[1],
    "size" => $folder[2]
  ));  
}

echo json_encode(array("folders" => $folderItems));
?>

用于收集数据的jQuery代码是:

jQuery.getJSON('/myajax.php', function(data){
  var folders = data.folders;
  // Your code here...
});

答案 1 :(得分:0)

简短回答:

json_decode($string)

json_encode($array)

答案 2 :(得分:0)

数组是二维还是一维,使用json_encode,PHP的内置函数v5.2.0,就在它作为响应发送之前是准备它的最佳方法在JavaScript中易于使用。

这样,Ajax调用就会收到一个JSON对象,这个对象很容易在JavaScript中引用或迭代。