PHP数组无法在JS文件中正常工作

时间:2019-05-30 08:29:32

标签: javascript php json

我用PHP编写了这个脚本:

$mainArray = array();
$storageArray = array();
while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
    $array = array($row["TransactionAmount"], $row["AccountBalance"], $row["TransactionDate"]);
    array_push($storageArray, $array);
}
$paginationArray = array();
for ($i = 0; $i < sizeof($storageArray); $i++) {
    if (sizeof($paginationArray) < 15) {
        array_push($paginationArray, $storageArray[$i]);
    } else {
        array_push($mainArray, $paginationArray);
        $paginationArray = array();
    }
}
print_r($mainArray);

发生的事情是,当我尝试访问数组的元素时,没有这样做,而是像访问字符串一样访问每个字符。如果[[“ Hello”],[“ World”]]是从PHP发送的数组,那么当我在JS文件中执行data [0]时,它将立即抓住第一个大括号而不是抓住“ Hello”。我不知道为什么会这样,因为我以前从未发生过。是什么赋予了?它不是字符串,我已经在两端对JSON进行了编码和解码,以查看是否可以正确解决但什么也没得到。

1 个答案:

答案 0 :(得分:1)

PHP print_r输出有关变量的可读信息。您的输出将是一个类似于以下内容的字符串:

Array
(
    [a] => apple
    [b] => banana
    [c] => Array
        (
            [0] => x
            [1] => y
            [2] => z
        )
)

要访问您放入JS的PHP数组中的数据,它应采用JS可以理解的格式-假设是JSON。

因此,您应该使用

代替print_r

echo json_encode($mainArray);

这将创建一个json字符串。

通过在前端使用JSON.parse将其转换为JS对象。