簡體   English   中英

count():參數必須是一個數組或在codeigniter中實現Countable的對象

[英]count(): Parameter must be an array or an object that implements Countable in codeigniter

我想在這段代碼中計算這個$maxjam變量

$my_array = array(1,2,3,4,5,6);
shuffle($my_array);

foreach ($my_array as $key => $value) {
$hari = $my_array[$key];
if($hari == 5){

    $maxjam = 6;
}elseif ($hari == 6){

    $maxjam = 8;

}else{  

    $maxjam = 7;

}

$jumlahjam = count($maxjam);
print_r($jumlahjam);
echo'<br>';
}

但我收到此錯誤:

遇到 PHP 錯誤 嚴重性:警告

消息:count():參數必須是實現 Countable 的數組或對象

文件名:控制器/jadwal.php

行號:166

如何解決這個錯誤?

試試這個,這個方法取代了所有其他方法。這是因為你使用的是新版本,你應該返回一個數組。如果你正在使用 CODEIGNITER,那么只需更改我在下面提到的代碼

更改您的if (count($chkAdminExist)):

if (count((array)$chkAdminExist)):

ps:$chkAdminExist 是我的變量,這可能與你的不同

您將$maxjam變量設置為整數,因此count函數失敗。 如果要創建一個新數組並在每次迭代時附加一個新元素,請使用$maxjam[] = <value>

$my_array = [1,2,3,4,5,6];
shuffle($my_array);
$maxjam = [];

foreach ($my_array as $hari) {
    if($hari == 5) {
        $maxjam[] = 6;
    } elseif ($hari == 6) {
        $maxjam[] = 8;
    } else {  
        $maxjam[] = 7;
    }

    $jumlahjam = count($maxjam);
    print_r($jumlahjam);
    echo'<br>';
}

count 函數用於數組或對象,$maxjam 是整數。 我正在使用 php 7.1 並且在您的代碼中運行良好。 但一切都是 1。我想你想要一些

$maxjam = 0;
foreach ($my_array as $key => $value) {
    $hari = $my_array[$key];
    if($hari == 5){    
        $maxjam+= 6;
    }elseif ($hari == 6){    
        $maxjam+= 8;    
    }else{      
        $maxjam+= 7;    
    }
}
echo $maxjam;

數組類型變量應該用於計數函數。

$my_array = array(1,2,3,4,5,6);
shuffle($my_array);$maxjam=array();
foreach ($my_array as $key => $value){
    $hari = $my_array[$key];
    if($hari == 5){  
    array_push($maxjam,6);
    }elseif ($hari == 6){a
    rray_push($maxjam,8);
    }else{ 
    array_push($maxjam,7);
    }
}
$jumlahjam = count($maxjam);
print_r($jumlahjam);
echo'<br>';

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM