簡體   English   中英

將二維數組從PHP返回到JavaScript

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM