PHP数组到JavaScript数组显示[对象,对象]

时间:2014-09-04 10:08:38

标签: javascript php arrays json

我一直在尝试将PHP数组传递给JavaScript数组,但是当我读出该JavaScript数组的内容时,它会直接显示[object,object]。

首先我用sql语句在PHP中创建一个数组,然后将其更改为JSON格式并将其放在JavaScript数组中。

<?php     

while ($row = mysql_fetch_assoc($result)) {

   $array[] = $row;
   }

mysql_free_result($result);

?>

<script type='text/javascript'>

    var js_array =<?php echo json_encode($array);?>;

for(i=0;i<5;i++){
    alert(js_array[i]);
}
</script>

4 个答案:

答案 0 :(得分:0)

因为mysql_fetch_assoc返回的每一行都是一个关联数组,它基本上是一个哈希&#34;键/值&#34;这被json和javascript视为一个对象!

使用mysql_fetch_array代替

mysql_fetch_array http://au2.php.net/manual/en/function.mysql-fetch-array.php

mysql_fetch_assoc http://php.net/manual/en/function.mysql-fetch-assoc.php

答案 1 :(得分:0)

$ row作为mysql_query_result已经是一个数组,所以你用数组填充你的$数组。那样js_array [0]仍然是一个数组,由JS解释为一个对象。您需要另一个嵌套级别才能获得各个值。

答案 2 :(得分:0)

这可能是多维关联数组中的$数组值,它导致json编码上的json对象数组。要查看候选阵列,请尝试

 for(i=0;i<5;i++){
alert(JSON.stringify(js_array[i]));
}

答案 3 :(得分:0)

假设您的php数组包含以下内容:

$myArray = array( 'first' => 1, 'second' => 2 );

现在,当您使用json_encode将其分配到javascript数组时,例如:

var js_array = <?php echo json_encode( $myArray ); ?>

相当于:

js_array = { "first" : "1", "second" : "2" }; // output of json_encode 

所以基本上你的js_array变量 一个对象。

您可以像这样查看其内容:

console.log( js_array );