繁体   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