PHP数组转JS数组及json_encode用法详解

作者:青柠时间:2026-10-27 15:59:47浏览:96

本文详解如何利用PHP的json_encode函数将后台数组转换为前端JS可用的数组格式。通过MySQL查询获取数据,构建嵌套PHP数组,并直接输出为JSON字符串供JavaScript使用,实现动态创建门店信息的功能。

PHP数组转JS数组的基本思路

熟练掌握PHP数组和字符串操作是入门的关键。PHP内置了大量处理这两类数据的函数。在开发中,有时需要动态在前端创建数据,例如门店信息,这些数据需从后台获取。通常的做法是从数据库读取数据生成PHP数组,再将其转换为前端JavaScript所需的数组格式。

示例代码如下:

$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()。


在JavaScript中,可以定义一个数组变量:


jsarray = <?php echo json_encode($newwarr);?>;


通过console.log()可以查看jsarray的结构,确认转换是否正确。

构建PHP数组的具体实现

接下来探讨如何构建符合上述要求的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_encode:对变量进行 JSON 编码,该函数只能接受 UTF-8编码的数据 .

相对应的还有json_decode,第二个参数为true,返回数组,执行相逆的过程。

json只能用对象和数组。

作者最新文章