如何将PHP嵌套数组转换为JQuery数组

时间:2019-03-09 08:40:41

标签: javascript php jquery arrays

我正在尝试将嵌套的PHP数组转换为JQuery数组,但是会引发错误。

这是一个PHP数组,即输出为print_r

Array( 
[867] => Array ( [id] => 867 [title] => ATM [permalinks] => atm 
[parent_id] => 1 [status] => 0 [sort] => 2 [icon_class] => [image] => 
[page_strip_id] => 0 [meta_title] => [meta_keyword] => [meta_description] => 
[show_on_home] => 0 [tot_listing] => 0 ) 
[344] => Array ( [id] => 344 [title] => Grocery [permalinks] => grocery 
[parent_id] => 10 [status] => 0 [sort] => 0 [icon_class] => icofont icofont- 
gift [image] => [page_strip_id] => 0 [meta_title] => [meta_keyword] => 
[meta_description] => [show_on_home] => 0 [tot_listing] => 0 ))

jQuery代码

<script type="text/javascript">
    var child_cat_id=JSON.parse('<?php echo json_encode($child_cat_id);?>');
    console.log(child_cat_id);
</script>

enter image description here

enter image description here

如何将其转换并与PHP数组一样使用

1 个答案:

答案 0 :(得分:0)

您的JSON可以有单引号,但不能转义JSON格式的单引号,但会以JavaScript结束的字符串文字结尾。另外,反斜杠不会具有JavaScript字符串文字所需的额外转义。

完全不解析JSON并假定JSON与JavaScript兼容(由PHP生成)更容易(即,没有断行字符的问题,因为PHP默认情况下会转义这些字符):

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

还有另一件事要考虑:json_encode将在编码过程中发生错误的情况下返回false。例如,当有非UTF8数据要编码时,您将得到该结果。 echo在这种情况下将不会输出任何内容,这将使上述解决方案无效的JavaScript(即=;)。您可以通过多种方式用JavaScript解决此问题,例如,如下所示:

var child_cat_id=["error", <?php echo json_encode($child_cat_id);?>].pop();

因此,每当PHP无法将数据编码为JSON时,child_cat就会是“错误”。