0

我想通过 JSON 传递数组,如下所示:

<?php

for(i=0;i<5;i++) {
  $arrayA[i] = "A" . i;
  $arrayB[i] = "B" . i;
}

echo json_encode($arrayA,$arrayB);

?>

我知道这是不可能的,但是还有其他方法可以传递动态加载的数组并在那之后用 javascript 读取它们吗?

4

4 回答 4

2

只需将两个数组放在另一个数组中。

$returnArr = array($arrayA,$arrayB);
echo json_encode($returnArr);

在 JS 端,只需使用您选择的库进行解码,然后像访问任何普通数组一样访问返回的数组。

于 2012-07-19T09:00:44.117 回答
2
echo json_encode(array('arrayA' => $arrayA, 'arrayB' => $arrayA));
于 2012-07-19T09:01:27.720 回答
1

只需为您的数组创建包装器:

for(i=0;i<5;i++) {
    $arrayA[i] = "A" . i;
    $arrayB[i] = "B" . i;
}
$arrayC = array($arrayA,$arrayB);
echo json_encode($arrayC);

在 jQuery 方面:

$.getJSON('ajax/yourPhpFile.php', function(data) {
    $.each(data, function(key, val) {
        // each `val` is one of the arrays you passed from php
    });
});
于 2012-07-19T09:02:19.183 回答
0

您可以使用 AJAX 加载将返回 PHP 生成的数组的脚本。如果你使用 jQuery,你可以使用 $.get() 或 $.getJSON() 来调用它。您可以在此处阅读 PHP JSON 手册http://php.net/manual/en/book.json.php并在此处阅读 jQuery .getJson() 函数http://api.jquery.com/jQuery.getJSON/

于 2012-07-19T09:01:59.627 回答