我试图计算设置为'是'的变量数量。使用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;?
的所有内容答案 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...