使用 json_encode() 和 JSON.parse 后地址数组中的错误输出


wrong output in address array after using json_encode() and JSON.parse

我有一个PHP,它正在从数据库中获取地址列的所有行,我使用json_encode()函数将其转换为字符串并在javascript中JSON.parse,但我没有得到预期的输出

 <? 
 include('dbcon.php');
 $result = mysql_query("SELECT address FROM markers");
 while ($row = mysql_fetch_assoc($result)) {
 $new_array[] = $row; 
 }
 print_r($new_array);
 $add_js = json_encode( $new_array );
 print_r($add_js);
 ?>

有了print_r($new_array);,我得到了两个维度的 arrary,并在第 0 个位置获得了null。 我所做的任何更改都会在第零个位置继续给出 null。

   var address = [JSON.parse( '<?php echo $add_js ?>' )];

var address应该存储地址数组,但是当我在数组中发出警报时,它会给出输出。

[object Object],[object Object],[object Object],[object Object],[object Object]

我想在从数据库中获取地址数组后存储地址数组

所以$new_array是一个关联数组的数组,它在JavaScript中被解码为一个对象数组。如果你想要一个字符串数组,那么你需要将字符串存储在$new_array

$new_array = array();
while ($row = mysql_fetch_assoc($result)) {
   $new_array[] = $row['address'];   // <-- This line
}
print_r($new_array);
$add_js = json_encode( $new_array );
print_r($add_js);

我认为这足以满足您的需求:

var address = <?php echo $add_js ?>