You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:35:45