PHP如何将JS传入的字符串化字符串转换为多维数组
问题解决方法
你用错了PHP函数:json_encode() 的作用是将PHP变量序列化为JSON格式字符串,而将JSON字符串反序列化为PHP变量需要调用json_decode()。
具体实现代码
// JS侧传递的原始JSON字符串 $rawJson = '[[1,"10.00","10.00","A"],[2,"20.00","25.00","B"],[3,"10.00","25.00","C"],[6,"10.00","25.00","D"]]'; // 第二个参数传true表示返回数组格式,不传默认返回stdClass对象 $multiArray = json_decode($rawJson, true); // 验证输出 var_dump($multiArray);
结果说明
解码后得到标准PHP二维索引数组,可直接通过下标访问对应值:
- 访问第一个内层数组的第二个元素:
$multiArray[0][1]会得到字符串10.00 - 访问最后一个内层数组的第四个元素:
$multiArray[3][3]会得到字符串D
异常排查
如果解码后返回null,说明JSON格式非法,可调用json_last_error_msg()查看具体错误原因;如果JS传递的字符串带多余转义符,可先调用stripslashes()处理原始字符串后再解码。
内容的提问来源于stack exchange,提问作者Carlos Patron
相关产品推荐
相关产品推荐

