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

PHP:如何将POST中的JSON字符串转为指定数组并解决报错?

问题解决方法

首先说报错原因:你用json_decode()默认返回的是stdClass对象,不是数组,而foreach需要遍历数组或可遍历对象,所以才会抛出类型错误。另外你的代码里json_encode($d)再解码的操作完全是冗余的,没必要这么做。

针对你的需求,正确的处理步骤如下:

  1. 解码POST里的JSON字符串时,给json_decode()传第二个参数true,让它返回关联数组:
// 解码为数组,而非对象
$data = json_decode(stripslashes($_POST['data']), true);
  1. 你的原始JSON是一个二维数组(最外层是数组,里面包含一个子数组),所以直接取$data[0]就是你要的目标数组:
$targetArr = $data[0];
// 输出验证
echo $targetArr[0] . ',' . $targetArr[1] . ',' . $targetArr[2];

如果一定要用foreach遍历外层数组(虽然这里外层只有一个元素),也可以这么写:

$data = json_decode(stripslashes($_POST['data']), true);
foreach ($data as $d) {
    // $d就是目标数组,直接访问即可
    echo $d[0] . ',' . $d[1] . ',' . $d[2];
}

这样就能得到你想要的结果:

  • $targetArr[0] = "2022-11-22"
  • $targetArr[1] = "fasfasf"
  • $targetArr[2] = "[[\"1,2\"],[\"3,4\"],[\"5\"]]"

内容的提问来源于stack exchange,提问作者user20574283

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 11:20:29