我已经搜索了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”。
echo count
尝试 echo count($task_array['task']);
echo count($task_array['task']);
通常,如果您想知道变量值的结构是什么$var,请执行
$var
<pre><?php var_export($var, true); ?></pre>
在替代品,如这个功能的优势serialize,并print_r是,它打印的PHP代码(并因此被人谁了解PHP(这很可能是,如果你在PHP程序)可读)。的缺点var_export是它不能处理圆形结构(例如if $a->b == $a),但JSON都不能。
serialize
print_r
var_export
$a->b == $a