2014-09-02 44 views
0

我試圖計算使用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 
?> 

但是,如果某些設置爲「否」,那麼我如何計算所有設置爲「是」的設置?

回答

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'; 
})); 
+0

這個偉大的工程,非常感謝:) – RustyIngles 2014-09-02 09:37:19

+0

@xdazz u能解釋這個'函數($ VAL)使用($ params)方法' – 2014-09-02 09:40:40

+1

@Prashant http://php.net /manual/functions.anonymous.php – xdazz 2014-09-02 09:42:18

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; 
} 
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

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... 
相關問題