php数组转换js数组操作及json_encode的用法详解 |
本文标签:php数组,json 对于php,个人感觉能够熟练操作数组和字符串,基本上已经是入门了,php本身有很多操作数组和字符串的函数,今天在做一个功能时,需要用Js动态的创建门店信息,这些信息是要从后台添加的,想来想去,通过php读取数据库,得到数组,然后将数组转化成符合需求js数组, 复制代码 代码如下: $newArray = array(array(地区=>北京地区,items=>10,detail=>array(0=>array(店名=>旗舰店,url=>http://www.),1=>array(店名=>jjjj,url=>http://www.fdd))), array(地区=>上海地区,items=>11,detail=>array(0=>array(店名=>旗舰店,url=>http://www.),1=>array(店名=>jjjj,url=>http://www.fdd))), ); 这里用的一个很方便的函数:json_encode(); var jsarray = new Array(); jsarray = <?php echo json_encode($newwarr);?>; 用console.log();可以看到jsarray的结构 。 在这里如何构造这样一个符合要求的php数组呢?(我用的是phpcms系统) 复制代码 代码如下: $sql= select catid,catname,items from category where parentid=10; $result = mysql_query($sql); while ($row = mysql_fetch_array($result)) { $arrArea[地区] = $row[catname]; $arrArea[items] = $row[items]; unset($arrArea[detail]);//这一步很关键,要不得出的信息就会累加 。 $sql2 = select title,url from news where catid=.$row[catid]; $fendian = mysql_query($sql2); while ($re=mysql_fetch_assoc($fendian)) { $item[店名]=$re[title]; $item[url]=$re[url]; $arrArea[detail][] = $item; } $newwarr[]=$arrArea; } var_dump($newwarr); json_encode:对变量进行 JSON 编码,该函数只能接受 UTF-8编码的数据 . 相对应的还有json_decode,第二个参数为true,返回数组,执行相逆的过程 。 json只能用对象和数组 。 |