将二维数组从PHP返回到JavaScript
我的JavaScript调用一个PHP脚本,该脚本在磁盘上构建一个二维文件夹数组。文件夹名称、文件数和总大小包含在数组中,因此该数组如下所示:将二维数组从PHP返回到JavaScript,javascript,php,jquery,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'},
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返回二维数组以便于访问的最佳方式是什么
谢谢简短回答:
json_decode($string)
及
无论数组是二维的还是一维的,在将其作为响应发送之前,使用
json_encode
,这是自v5.2.0起PHP的内置函数,是准备在JavaScript中轻松使用的最佳方法
通过这种方式,Ajax调用接收一个JSON对象,该对象在JavaScript中很容易引用或迭代。JSON是一种很好的方法,因为它是JavaScript中构造数据的事实标准。可以使用PHP数组生成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));
?>
对JSON格式进行反序列化/序列化。
<?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.getJSON('/myajax.php', function(data){
var folders = data.folders;
// Your code here...
});