如果设置为“是”,则计算变量数

时间:2014-09-02 09:24:11

标签: php count

我试图计算设置为'是'的变量数量。使用PHP然后输出计数。

例如,我有以下变量:

$facebook = $params->get('facebook');
$twitter = $params->get('twitter');
$email = $params->get('email');
$pinterest = $params->get('pinterest');
$google = $params->get('google');

如果他们全部设置为“是”,则使用此方法计数为5:

<?php
    $social = array('facebook', 'twitter', 'email', 'pinterest', 'google');
    echo count($social); // output 5
?>

但是,如果有些人设置为“不”。我怎样才能计算所有设置为&#39; yes&#39;?

的所有内容

4 个答案:

答案 0 :(得分:3)

使用array_filter然后count

$social = array('facebook', 'twitter', 'email', 'pinterest', 'google');
$count = count(array_filter($social, function($val) use ($params) {
  return $params->get($val) === 'yes';
}));

答案 1 :(得分:0)

最好将它们添加到数组

$vars['facebook'] = $params->get('facebook');
$vars['twitter'] = $params->get('twitter');
$vars['email'] = $params->get('email');
$vars['pinterest'] = $params->get('pinterest');
$vars['google'] = $params->get('google');

比循环那个数组

$count = 0;
foreach ($vars as $var) {
    $count += strtolower($var) == 'yes' ? 1 : 0;
}

答案 2 :(得分:0)

您可以设置各种社交true的变量,如果它们等于'yes'false,则只需加总它们。

$facebook  = ( $params->get('Facebook')  == 'yes');
$twitter   = ( $params->get('twitter')   == 'yes');
$email     = ( $params->get('email')     == 'yes');
$pinterest = ( $params->get('pinterest') == 'yes');
$google    = ( $params->get('google')    == 'yes');

$count = $facebook + $twitter + $email + $pinterest + $google;

或者,如果您想使用数组,请像以前一样设置var,然后您可以查看以下答案:PHP Count Number of True Values in a Boolean Array

答案 3 :(得分:0)

一个简单的方法是做一个循环,然后检查每个值......

$true = 0; //The count...
foreach ($social as $value) {
    if ($value = "yes") { $true++; } //Checks each value if 'yes', increases count...
}
echo $true; //Shows the count...