首页 > 解决方案 > 如何计算 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

标签: phpjsoncountexplode

解决方案


您只需要确保该数组中没有空值。因为当空字符串被分解时,它将创建一个值为空白的元素。

使用删除这些值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

推荐阅读