PHP计数JSON数组

And*_*Dev 7 php arrays json http-post

我搜索了SO但找不到答案.我的PHP脚本正在通过http post接收一些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"
  }
 ]}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,有3个项目,但是当我将其转换为PHP数组对象并计算项目时,我返回1,当它应该是3时,这是我的PHP代码:

$json_tasks = $_POST["json_array"];
$task_array = json_decode($json_tasks,true);
echo count($task_array);
Run Code Online (Sandbox Code Playgroud)

echo count打印出"1",而不是"3".

Osw*_*ald 13

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

一般来说,如果你想知道变量值的结构是什么,那就$var做一个

<pre><?php var_export($var, true); ?></pre>
Run Code Online (Sandbox Code Playgroud)

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


Dee*_*yal 5

项目3位于1item中"task",因此您有一个名为 task 的数组,其中包含 3 个元素

尝试

echo count($task_array['task']);
Run Code Online (Sandbox Code Playgroud)

编辑 :

请使用下面的代码以正确的模式打印数组

echo '<pre>';
print_r($task_array['task']);
exit();
Run Code Online (Sandbox Code Playgroud)


小智 5

$task_array = json_decode($json_tasks);
count($task_array->task);
Run Code Online (Sandbox Code Playgroud)

例如:3

来自台湾