[英]Returning two-dimensional array from PHP to JavaScript
我的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返回二維數組以便於訪問的最佳方法是什么?
謝謝
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
的代碼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...
});
簡短答案:
json_decode($string)
和
json_encode($array)
無論數組是二維數組還是一維數組,使用json_encode
(從v5.2.0起PHP的內置函數)在發送響應之前,都是准備將其輕松在JavaScript中使用的最佳方法。
這樣,Ajax調用將接收一個JSON對象,該對象自然很容易在JavaScript中引用或迭代。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.