PHP向JavaScript中传递数组的解决办法

      在PHP向JavaScript传递数组的时候不能直接向JavaScript传递php的数组,需要将PHP的数组编码后传递给JavaScript才能被识别。
编码的过程中需要使用到PHP中的一个编码函数
string json_encode ( mixed $value [, int $options = 0 ] );
该函数的参数以及返回值介绍:
      value:待编码的value,出来resource类型之外,可以为任何的数据类型,同时需要注意的是,该方法只能接收UTF-8编码的数据。
      options:该参数有以下常量组成的二进制掩码:JSON_HEX_QUOT , JSON_HEX_TAG , JSON_HEX_AMP , JSON_HEX_APOS , JSON_NUMERIC_CHECK , JSON_PRETTY_PRINT , JSON_UNESCAPED_SLASHES , JSON_FORCE_OBJECT , JSON_UNESCAPED_UNICODE .
      返回值:编码成功则返回一个一JSON形式表示的string或者在失败是返回FALSE。
与之对应的还有一个json_deconde方法,该方法也就是json_encode()方法的一个逆过程。

mixed  json_decode ( string $json [, bool $assoc  = false [, int $depth  = 512 [, int $options  = 0 ]]] )

该函数的参数以及返回值说明:
      **$json:**待解码的json string格式的字符串。
      **assoc:**当该参数为TRUE时,将返回array数组类型而不是object类型。
      **depth:**用户指定的递归深度。
      **options:**JSON解码选项的位掩码。目前只支持JSON_BIGINT_AS_STRING(默认情况下将大整数转换为浮点数)。

注: 后面这两个参数没有使用过!是按照手册上的说法翻译过来的!
返回值 返回值根据第二、三、四个参数来决定,如果解码过程中超过了递归的深度或者不能被解码,则返回NULL。如果能解码,同时没有超过指定的递归深度,便要根据第二个参数来决定返回的是array类型还是object类型。

实例:1.json_encode()的使用

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html;charset:utf-8">
    <script content="text/javascript">
        function form_s(arr) {
            alert(arr);
        }
    </script>
</head>
<body>
<?php
    $arr = array();
    $arr[0] = '计算机系';
    $arr[1] = '数学系';
    $arr[2] = '外语系';
    $str = json_encode($arr);
    echo "<script type='text/javascript'>form_s($str)</script>"
?>
</body>
</html>

上述实例的运行结果如下:
在这里插入图片描述

实例:2. json_decode()方法的使用

<?php
 $json  =  '{"a":1,"b":2,"c":3,"d":4,"e":5}' ;
 var_dump ( json_decode ( $json ));
 var_dump ( json_decode ( $json ,  true ));
 ?> 

上述实例运行结果:
在这里插入图片描述


参考链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值