需先确认json_decode解析结果类型再获取长度:默认返回对象,设第二个参数为true得数组后用count();若为对象则用get_object_vars()转数组再count();无效JSON须用json_last_error()校验。

如果您在PHP中使用json_decode解析JSON字符串后,需要获取其内部数组的长度,则必须先确认解析结果的数据类型。以下是获取JSON数组长度的具体步骤:
json_decode默认返回对象,需显式指定第二个参数为true,使其返回关联数组;之后可直接使用count()函数统计元素个数。
1、调用json_decode函数,并将第二个参数设为true,例如:$data = json_decode($json_string, true);
2、判断返回值是否为数组且不为空,使用is_array($data) && !empty($data)进行校验;
立即学习“PHP免费学习笔记(深入)”;
3、对合法数组执行count($data),得到元素总数。
当JSON可能嵌套对象或数组时,需先判断解码后顶层结构类型,再决定是否适用count();若为stdClass对象,则不可直接使用count(),须转换或遍历属性。
1、执行$json_obj = json_decode($json_string);
2、通过gettype($json_obj)确认返回值类型是否为array;
3、若为array,直接调用count($json_obj);若为object,使用get_object_vars($json_obj)转为数组后再调用count();
4、若转换后仍为空或非数组,返回0或抛出类型异常提示。
在无法确定数据结构稳定性或需兼容低版本PHP(如5.3以下)时,可通过手动遍历方式累计元素数量,避免count()对非数组类型报错。
1、初始化计数变量$count = 0;
2、对json_decode($json_string, true)结果执行foreach循环;
3、每次迭代执行$count++;
4、循环结束后,$count即为实际元素个数。
无效JSON会导致json_decode返回null,此时调用count(null)将触发警告;必须前置验证解析结果是否为有效数组或对象。
1、执行$result = json_decode($json_string);
2、使用json_last_error()确认返回值是否为JSON_ERROR_NONE;
3、若错误码不为0,说明JSON格式错误,不可继续计算长度;
4、若无错误,再按类型分支处理并计数。
以上就是php遍历json数组长度_json_decode解析后获取长度【指南】的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号