如何删除PHP警告:count()参数必须是实现可计数的数组

如何删除PHP警告:count()参数必须是实现可计数的数组,php,error-handling,count,Php,Error Handling,Count,我知道这个问题已经被问过很多次了,但我找不到任何对我有帮助的东西 当我尝试对json_解码数组的行进行计数时,我的PHP代码返回一个警告“warning:count():参数必须是一个数组或实现可计数的对象”,但代码正常工作。我怎样才能摆脱这个警告 以下是代码(它在数据库中生成匿名字段): 这样,PHP就可以继续运行,而不会显示任何错误消息。您正在对$myVar进行计数,其中似乎应该是$l\u myVar: while ($row = $result->fetch_assoc()) {

我知道这个问题已经被问过很多次了,但我找不到任何对我有帮助的东西

当我尝试对json_解码数组的行进行计数时,我的PHP代码返回一个警告“warning:count():参数必须是一个数组或实现可计数的对象”,但代码正常工作。我怎样才能摆脱这个警告

以下是代码(它在数据库中生成匿名字段):


这样,PHP就可以继续运行,而不会显示任何错误消息。

您正在对$myVar进行计数,其中似乎应该是$l\u myVar:

while ($row = $result->fetch_assoc()) {
    $l__myVar = json_decode($row["myVar"], true);
    $l__id        = $row["id"];

    for ($i = 0; $i < count($l__myVar["node1"]["node1"]); $i++) {
        $l__myVar["node1"]["node1"][$i]["fname"] = SUBSTR(MD5(RAND()) . MD5(RAND()), 1, 6);
        $l__myVar["node1"]["node1"][$i]["lname"] = SUBSTR(MD5(RAND()) . MD5(RAND()), 1, 6);
    }

    $myVar  = json_encode($l__myVar);
    //Then I am doing my SQL update
}
while($row=$result->fetch_assoc()){
$l_uumyvar=json_decode($row[“myVar”],true);
$l_uuid=$row[“id”];
对于($i=0;$i

根据您发布的代码,$myVar在count()之后才被设置;除非您对脚本进行了进一步设置。

似乎有时
$l_uumyvar[“node1”][“node1”]
不是数组,以避免使用警告

if(is_array($l__myVar["node1"]["node1"])){
  for ($i = 0; $i < count($l__myVar["node1"]["node1"]); $i++) {
    $l__myVar["node1"]["node1"][$i]["fname"] = SUBSTR(MD5(RAND()) . MD5(RAND()), 1, 6);
    $l__myVar["node1"]["node1"][$i]["lname"] = SUBSTR(MD5(RAND()) . MD5(RAND()), 1, 6);
  }
}else{
   /*Your Code*/
}
if(is_数组($l_umyvar[“node1”][“node1”])){
对于($i=0;$i
也许
$myVar
应该是
foreach
中的
$l_umyvar
$myVar
是一个JSON字符串,而不是数组。您为什么以这种不可读的方式命名变量?-><代码>$l_uumyvar
通过修复它?o、 o您是否已转储$myVar[“node1”][“node1”]以查看它是否是一个数组?并且不要在
循环中使用count,这会增加您的执行时间,请在
循环之前在$tempVarCount中获取该计数。Nick是的,很抱歉,这是一个错误。我在重新编写代码时犯了错误,我在问题中更改了它。是的,很抱歉,我刚才在SQL查询中使用了它,我编辑了我的问题:)看起来你是对的,根据@treyBake comment,通过转储我的数据,有时我会转储,而其他时候我会在“else”中输入错误消息
while ($row = $result->fetch_assoc()) {
    $l__myVar = json_decode($row["myVar"], true);
    $l__id        = $row["id"];

    for ($i = 0; $i < count($l__myVar["node1"]["node1"]); $i++) {
        $l__myVar["node1"]["node1"][$i]["fname"] = SUBSTR(MD5(RAND()) . MD5(RAND()), 1, 6);
        $l__myVar["node1"]["node1"][$i]["lname"] = SUBSTR(MD5(RAND()) . MD5(RAND()), 1, 6);
    }

    $myVar  = json_encode($l__myVar);
    //Then I am doing my SQL update
}
if(is_array($l__myVar["node1"]["node1"])){
  for ($i = 0; $i < count($l__myVar["node1"]["node1"]); $i++) {
    $l__myVar["node1"]["node1"][$i]["fname"] = SUBSTR(MD5(RAND()) . MD5(RAND()), 1, 6);
    $l__myVar["node1"]["node1"][$i]["lname"] = SUBSTR(MD5(RAND()) . MD5(RAND()), 1, 6);
  }
}else{
   /*Your Code*/
}