php - 如何计算 JSON 对象中存在的元素数量?
问题描述
我有一个 PHP/JSON,如下所示。
JSON:
{"posts_id_en":"101, 102, 103","posts_id_fr":"", "reports_id_en":"101, 102", "reports_id_fr":"101"}
PHP代码:
echo count(explode(",", $data->posts_id_en)); // Line A (3)
echo count(explode(",", $data->posts_id_fr)); // Line B (1)
echo count(explode(",", $data->reports_id_en)); // Line C (2)
echo count(explode(",", $data->reports_id_fr)); // Line D (1)
A 行 php 代码、C 行 php 代码和 D 行 php 代码打印3
, 2
, 和1
.
问题陈述:
我想知道我需要在 B 行上面的 php 代码中进行哪些更改,以便它打印 0,因为里面没有元素posts_id_fr
解决方案
您只需要确保该数组中没有空值。因为当空字符串被分解时,它将创建一个值为空白的元素。
使用删除这些值array_filter
echo count(array_filter(explode(",", $data->posts_id_fr)));
// Will print 0
以防万一你想按照建议循环GrumpyCrouton
foreach($data as $key => $value)
{
echo $key . ' : ' . count(array_filter(explode(",", $value))) . PHP_EOL;
}
Output:
posts_id_en : 3
posts_id_fr : 0
reports_id_en: 2
reports_id_fr: 1