一尘不染

PHP计数JSON数组

json

我已经搜索了SO,但是找不到答案。我的PHP脚本正在通过http发布接收一些JSON,如下所示:

{
"task": [
{
  "task_id": "3",
  "task_due": "Oct 26 11:25",
  "task_completed": "FALSE",
  "task_desc": "fff",
  "task_time": "20131026_112531",
  "task_name": "fff"
},
{
  "task_id": "2",
  "task_due": "Oct 26 11:25",
  "task_completed": "FALSE",
  "task_desc": "rff",
  "task_time": "20131026_112522",
  "task_name": "xff"
},
{
  "task_id": "1",
  "task_due": "Oct 26 11:25",
  "task_completed": "FALSE",
  "task_desc": "fggg",
  "task_time": "20131026_112516",
  "task_name": "ff"
  }
 ]}

如您所见,这里有3个项目,但是当我将它变成一个PHP数组对象并计算项目时,我返回1,应该为3,这是我的PHP代码:

$json_tasks = $_POST["json_array"];
$task_array = json_decode($json_tasks,true);
echo count($task_array);

echo count打印出“ 1”而不是“ 3”。


阅读 650

收藏
2020-07-27

共1个答案

一尘不染

尝试 echo count($task_array['task']);

通常,如果您想知道变量值的结构是什么$var,请执行

<pre><?php var_export($var, true); ?></pre>

在替代品,如这个功能的优势serialize,并print_r是,它打印的PHP代码(并因此被人谁了解PHP(这很可能是,如果你在PHP程序)可读)。的缺点var_export是它不能处理圆形结构(例如if
$a->b == $a),但JSON都不能。

2020-07-27