微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP计算每个for循环中数组中非空输入数据的数量

如何解决PHP计算每个for循环中数组中非空输入数据的数量

我有一种将多行输入数据更新到我的sql中的表单。每行在表单中都有3个输入字段。我试图计算每个for循环中每一行中的空数据数量,并通过计算百分比将其更新为sql。例如,在3个输入字段中的一行中,只有2个输入字段被填充,因此百分比应为(2/3)* 100 = 67(向上舍入)。我怎么做?下面是我的代码。请检查是否对您有意义。

<?PHP
        $execute = false;
        $pr = 0;
        $userid_array = $_POST['userid_array'];     
        $access_array = $_POST['access_array'];
        $ic_array = $_POST['ic_array'];
        $email_array = $_POST['email_array'];
        
        foreach($userid_array as $key => $userid)
        {
            $array_count = 0;
            $access = $access_array[$key];
            $ic = $ic_array[$key];
            $email = $email_array[$key];
            
            $array_count = count(array_filter($access,$ic,$email)); //Count number of non-empty array elements
            
            $pr_percent = round(($array_count/3)*100,0); //number of non-empty array elements divided by total number of input field multiply by 100
            
            $tsql = "UPDATE MASTER SET [Access] = ?,[IC] = ?,[Email] = ?,[pr_percent] = ? WHERE user_id = ?"; 
            $params_tsql = array($access,$email,$pr_percent,$userid);
            $stmt = sqlsrv_query( $conn,$tsql,$params_tsql);
                

            if($stmt)
            {
                  $execute = true;
            } 
            else
            {
                  $execute = false;
                  die( print_r( sqlsrv_errors(),true));
            }
        }

        if($execute){
            echo "success";
        }else{
            echo "Failed";
        }

?>

解决方法

@Nick非常感谢。我怎么会这么粗心。

下面是我的答案

$array_count = count(array_filter(array($access,$ic,$email)));

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。