2014-11-07 4 views
0

Мой JavaScript вызывает скрипт PHP, который создает двумерный массив папок на диске. Имя папки, количество файлов и общий размер входят в массиве, поэтому массив выглядит следующим образом:Возвращение двумерного массива от PHP к JavaScript

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, чтобы вернуть его в двумерный массив для легкого доступа?

Благодаря

+0

Deserialize/serialize to/from JSON format. –

ответ

1

JSON - хороший подход, поскольку он является де-факто стандартом для структурирования данных в JavaScript. Массив PHP можно использовать для генерации JSON с json_encode().

Использование 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)); 
?> 

The кода JQuery, используемых для собирать данные тогда:

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

короткий ответ:

json_decode($string) 

и

json_encode($array) 
0

ли массив является двумерным или одномерным, используя json_encode, встроенный в функции PHP начиная с версии 5.0.0, перед отправкой, так как ответ - лучший способ подготовить его для удобства использования в JavaScript.

Таким образом, вызов Ajax получает объект JSON, который, естественно, легко ссылается или проходит через JavaScript.

Смежные вопросы