我遇到了一个问题,我必须在获取我想要添加到字符串中的数据之前回显一个字符串。我需要将echo保持在while语句之上的相同位置,以便while循环的结果显示在输出语句下面。
以下是代码:
$countTimes = 0;
$jsonCheck_c = json_encode($json_c);
output("font-weight: bold;", "Checklist (0 of " . $countTimes . " completed)");
if(strlen($jsonCheck_c) > 20){
while($searchChecklists){
$checkPre = $json_c[0]['checkItems'][$countTimes]['name'];
$jsonCheck_d = json_encode($checkPre);
if($jsonCheck_d != "null"){
$countTimes++;
output("font-size: 12px;", $checkPre);
}
else {
$searchChecklists = false;
}
}
}
输出只是echo的字符串,但是有了一些参数,我想在输出中更新$ countTest,并在while循环结束时使用该值。
任何想法都会很棒,欢呼。
答案 0 :(得分:1)
而不是echo'ing只是收集变量并稍后输出:
$jsonCheck_c = json_encode($json_c);
$output = array();
if(strlen($jsonCheck_c) > 20){
while($searchChecklists){
$checkPre = $json_c[0]['checkItems'][$countTimes]['name'];
$jsonCheck_d = json_encode($checkPre);
if($jsonCheck_d != "null"){
$output[] = $checkPre;
}
else {
$searchChecklists = false;
}
}
}
output("font-weight: bold;", "Checklist (0 of " . count($output) . " completed)");
foreach ($output as $line) {
output("font-size: 12px;", $line);
}
如果您让output()
函数返回结果而不是echo
,则可以略微改进此代码。在这种情况下,您将避免双循环,而是收集字符串中output()
的所有结果。