我有5PHP計數功能
這裏是我的代碼數是整除的數字,上述方案
$num = array(4, 25, 60, 7, 8);
foreach ($num as $numbers) {
if (($numbers % 5) == 0) {
echo count($numbers);
}
}
輸出爲11,但輸出應該是2,請給我解。提前致謝。
我有5PHP計數功能
這裏是我的代碼數是整除的數字,上述方案
$num = array(4, 25, 60, 7, 8);
foreach ($num as $numbers) {
if (($numbers % 5) == 0) {
echo count($numbers);
}
}
輸出爲11,但輸出應該是2,請給我解。提前致謝。
我認爲你需要做更多的事情,可能如下。
$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);
嘿它工作。非常感謝RamRaider –
這裏輸出爲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;
?>
要打印的數字也
$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
}
}
回聲$一個
請說明你所做的更改以及原因。這將使這個答案更好的一個(: – jmattheis
所以我初始化$ a = array();然後在你的foreach循環中,我將匹配你的if語句的數字存入索引0處的$ a。現在,所有匹配的數字都在我的$一個變量之外的每個我計數的所有值和回聲計數.......在旁註,如果你想你也可以存儲數據到$ a而不是$ a []作爲$ a將創建更多的子數組,如果你想檢查兩次,並且在你回調count的地方使用var_dump($ a);看看數組看起來像$ a將創建一個維,$ a []將創建一個2維 –
我將$ a初始化爲一個空數組,因此當用於每個循環內部時,它將存儲所有值而不是替換值 –
您可以使用此方式還有,
function divisibleby5($var){
return $var % 5 == 0;
}
$num = array(4, 25, 60, 7, 8);
echo count(array_filter($num,'divisibleby5');
$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
的行爲如0
和1
。
- 功能版本使用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);
我喜歡'玩類型'片,整潔! – RamRaider
'count(某個數字)'是1,而你hav兩場比賽。所以....你會得到兩個1。 – rjdown