如何删除PHP警告:count()参数必须是实现可计数的数组
我知道这个问题已经被问过很多次了,但我找不到任何对我有帮助的东西 当我尝试对json_解码数组的行进行计数时,我的PHP代码返回一个警告“warning: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()) {
这样,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*/
}