【发布时间】:2019-04-21 05:55:42
【问题描述】:
我正在我的项目中使用Do While loop,它的工作第一次很好。
在while statement 之前,我为数组赋值我可以在代码底部成功打印数组,但是当我在顶部检查时它的变为0循环。
代码:
$looparray = array();
$loopend = 0;
$arraymer = array();
$poolafirtsid = $previous_array_values; //previous array values
do {
if (sizeof($looparray) == 0) {
$firstsponarray = $poolafirtsid;
} else {
$firstsponarray = $looparray;
}
$firstsponarray = getUserArray($poolafirtsid);
//get user arraylist of first
foreach ($firstsponarray as $avalue) {
$rooparray = membercount($avalue);
$bsponarray = getUserArray($avalue);
//get second users arraylist 9
if (sizeof($bsponarray > 0)) {
$barraymer = array_merge($barraymer, $bsponarray);
}
$aarraylist[$avalue] = $rooparray;
}
$asmallestsponid = getSmallestID($aarraylist);
//get smallest id in the array
if (membercount($asmallestsponid) < 3) {
$loopend = 1;
} else {
global $pooldata;
if (count($barraymer) > 0) {
$pooldata = $barraymer;
}
print_r($pooldata);
}
} while ($loopend == 1);
当我在 else 中打印时,它可以工作,但我无法打印 do 循环的开始,它显示的数组大小为 0
【问题讨论】:
-
如果不查看
membercount()、getUserArray()、getSmallestID()函数的代码或返回值,就无法进行调试。考虑使用它们的返回值而不是调用来更新您的问题,因此向 MVCE 提供硬编码值并检查它们是否仍然存在错误 -
但是我的代码运行良好,我得到了值。我担心的是当我检查代码时,$looparray 数组大小变成了 0。但是在其他条件下,我在代码底部得到了正确的结果。
-
如前所述,如果您正在寻求帮助,我们需要这些函数返回的值,即 MCVE
-
请查看我在使用 print_r 时在代码底部得到的结果,我无法访问代码顶部以重用
-
还可以考虑在未来关注
PSR-x,请注意variable naming可以提升您对代码的理解很多。永远不要低估代码中语义的力量。
标签: php loops while-loop do-while