2016-08-06 89 views
-1

我有5PHP計數功能

這裏是我的代碼數是整除的數字,上述方案

$num = array(4, 25, 60, 7, 8); 

foreach ($num as $numbers) { 
    if (($numbers % 5) == 0) { 
     echo count($numbers); 
    } 
} 

輸出爲11,但輸出應該是2,請給我解。提前致謝。

+2

'count(某個數字)'是1,而你hav兩場比賽。所以....你會得到兩個1。 – rjdown

回答

0

我認爲你需要做更多的事情,可能如下。

$num = array(4, 25, 60, 7, 8); 
$numbers=array(); 

foreach($num as $number) { 
    if($number % 5 == 0) $numbers[]=$number; 
} 
echo count($numbers); 

或交替使用array_walk和一個自定義的回調函數

function mod5($item,$key,$arr){ 
    if($item %5==0)$arr[]=$item; 
} 
array_walk($num,'mod5',&$numbers); 
echo count($numbers); 
+0

嘿它工作。非常感謝RamRaider –

0

這裏輸出爲1和1不是11(十一) ,您可以嘗試

echo count($numbers)."<br>"; 

您的解決方案: 如果在輸入if條件後遞增計數變量值,則輸出將爲2

<?php 
$num = array(4, 25, 60, 7, 8); 
$count = 0; 

foreach($num as $numbers) { 

    if (($numbers % 5) == 0) { 
    $count++; 
    } 
} 
echo $count; 
?> 
0
事件

要打印的數字也

$a=array(); //initialized empty array 
    $num = array(4, 25, 60, 7, 8); 
    foreach($num as $numbers){ 
     if(($numbers % 5) == 0){ 
      $a=$numbers; //store values into the array 
     } 
    } 
    echo count($a); // echo the count of the array 
echo implode('<br>',$a); 

或者如果你只是需要計數

$a=0; //initalize $a 
$num = array(4, 25, 60, 7, 8); 
foreach($num as $numbers){ 
    if(($numbers % 5) == 0){ 
     $a++; //increment a 
    } 
} 

回聲$一個

+0

請說明你所做的更改以及原因。這將使這個答案更好的一個(: – jmattheis

+0

所以我初始化$ a = array();然後在你的foreach循環中,我將匹配你的if語句的數字存入索引0處的$ a。現在,所有匹配的數字都在我的$一個變量之外的每個我計數的所有值和回聲計數.......在旁註,如果你想你也可以存儲數據到$ a而不是$ a []作爲$ a將創建更多的子數組,如果你想檢查兩次,並且在你回調count的地方使用var_dump($ a);看看數組看起來像$ a將創建一個維,$ a []將創建一個2維 –

+0

我將$ a初始化爲一個空數組,因此當用於每個循環內部時,它將存儲所有值而不是替換值 –

1

您可以使用此方式還有,

function divisibleby5($var){ 
return $var % 5 == 0; 
} 

$num = array(4, 25, 60, 7, 8); 
echo count(array_filter($num,'divisibleby5'); 
1
$nums = array(4, 25, 60, 7, 8); 

只計算:

- 基本:

$count = 0; 
foreach ($nums as $num) { 
    if ($num % 5 == 0) $count++; 
} 

與類型-playing:

$count = 0; 
foreach ($nums as $num) { 
    $count += !($num % 5); 
} 

$num % 5返回一個整數,!($num % 5)返回一個布爾值,但因爲它與+運算符01一起用作操作數和true的行爲如01

- 功能版本使用array_reduce

$count = array_reduce($nums, function($c, $i) { return $c + !($i % 5); }); 

篩選項目,使用以及命名array_filter

$result = array_filter($nums, function ($i) { return $i % 5 == 0; }); 

後清點貨物數量,如果你想:

$count = count($result); 
+0

我喜歡'玩類型'片,整潔! – RamRaider