如何将JSON Array转换为PHP Array及用PHP读取JSON对象数组的值?
嘿,这两个问题都是PHP开发中处理JSON数据的基础操作,我帮你一步步拆解清楚:
一、将JSON Array转换为PHP Array
PHP里处理JSON最常用的就是内置的json_decode()函数,要把JSON数组转成PHP数组,只需要给这个函数传两个参数:
- 第一个参数是你的JSON数组字符串
- 第二个参数设为
true,这样会返回关联数组(如果不设,默认返回stdClass对象)
举个实际例子:
// 示例JSON数组字符串 $jsonArrayStr = '["奶茶", "咖啡", "果汁"]'; // 转换为PHP关联数组 $phpArray = json_decode($jsonArrayStr, true); // 打印结果看看 print_r($phpArray);
运行后你会得到一个标准的PHP数组:
Array ( [0] => 奶茶 [1] => 咖啡 [2] => 果汁 )
小提醒:如果转换后得到
null,大概率是你的JSON格式有问题,可以用json_last_error()函数排查具体错误。
二、PHP读取JSON对象数组中的值
假设你有这样一段JSON对象数组:
[ {"product_id": 101, "product_name": "无线鼠标", "price": 99}, {"product_id": 102, "product_name": "机械键盘", "price": 299} ]
同样用json_decode()处理,分两种读取方式:
方式1:转成关联数组读取
把第二个参数设为true,之后就可以用数组下标+键名的方式访问值:
$jsonObjArrayStr = '[ {"product_id": 101, "product_name": "无线鼠标", "price": 99}, {"product_id": 102, "product_name": "机械键盘", "price": 299} ]'; // 转换为PHP关联数组 $phpAssocArray = json_decode($jsonObjArrayStr, true); // 读取第一个商品的名称 echo $phpAssocArray[0]['product_name']; // 输出:无线鼠标 // 遍历所有商品,打印信息 foreach ($phpAssocArray as $product) { echo "商品ID: {$product['product_id']}, 价格: {$product['price']}元\n"; }
方式2:转成对象数组读取
如果不设置第二个参数,json_decode()会返回stdClass对象的数组,此时用->箭头访问对象属性:
$phpObjArray = json_decode($jsonObjArrayStr); // 读取第二个商品的价格 echo $phpObjArray[1]->price; // 输出:299 // 遍历所有商品 foreach ($phpObjArray as $product) { echo "商品名称: {$product->product_name}, ID: {$product->product_id}\n"; }
小技巧:如果不确定某个键/属性是否存在,可以先用
isset()检查,避免触发报错,比如if (isset($phpAssocArray[0]['product_name'])) { ... }
内容的提问来源于stack exchange,提问作者Tharindu Dhanushka
相关产品推荐
相关产品推荐

