如何计算数组中的空字符串数

时间:2016-09-12 13:18:21

标签: php

我有一张表格,最终我想根据提交的值计算百分比。 我遇到的问题是某些答案可能被标记为n / a,因此我需要能够仅计算具有数据的字段总数(0表示失败,1表示通过)。我使用空字符串作为n / a答案,如下面的代码所示。我是php的新手,所以想知道最好的方法是什么。有没有办法计算提交的空字符串的数量,或者只计算提交的包含数据的字符串总数?

<label>
    <input type="radio" name="item1" value="">N/A
</label>
<label>
    <input type="radio" name="item1" value="0">Fail
</label>
<label>
    <input type="radio" name="item1" value="1">Pass
</label>

2 个答案:

答案 0 :(得分:1)

要回答您的问题,您可以过滤数组,删除空字符串,然后计算项目数。如果将其与原始数组中的项目数进行比较,则可以知道有多少空字符串。你可以为你想要衡量的任何价值做到这一点。

$filtered = array_filter($original, function($el) {
    // check for empty strings as 0 for example is a valid value
    return $el !== '';
});
var_dump(count($original) - count($filtered));

但是,对于表单,您必须查看是否可以使用它,因为我通常会验证各个字段。

答案 1 :(得分:0)

当然 - 在提交表单时,您可以处理$_POST数组 - 在此示例中使用带有自定义回调的array_filter

function countempty($value){
    /*return empty( $value );*/
    return $value=='';
}

$empty=count( array_filter( $_POST, 'countempty' ) );
echo 'Empty: '.$empty;