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只能用对象和数组。
作者最新文章
ES6模块化中js文件怎么用import和export交互
2026-11-05 17:00:48
JS读取本地文件时报错或无响应的常见原因
2026-11-05 16:32:31
let、const与var的区别:JavaScript变量声明最佳实践
2026-11-05 14:16:38
JS中直接定义静态二维数组的字面量写法
2026-11-05 14:16:08
JS 怎么查找字符串中所有匹配项的位置
2026-11-05 14:15:53
