2014-09-02 1 views
0

PHP를 사용하여 'yes'로 설정된 변수의 수를 계산하고 그 값을 출력하려고합니다.'yes'로 설정하면 변수의 수가 카운트됩니다.

그래서 예를 들어, 나는 다음과 같은 변수가 있습니다

$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

+0

@xdazz은 유 ($ PARAMS)' –

+1

@Prashant http://php.net 사용이'기능 ($ val에)을 설명 할 수 /manual/functions.anonymous.php – xdazz

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

'yes'에 동일한 경우 당신은 다양한 사회 true의 변수를 설정할 수 있습니다 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... 
관련 문제