gpt4 book ai didi

PHP 嵌套循环行为异常

转载 作者:行者123 更新时间:2023-12-01 00:03:14 24 4
gpt4 key购买 nike

我有一个数组,其中包含特定文章的类别($link_cat)。然后我使用 mysql_fetch_array 打印出所有可用的类别到一个带有复选框的列表中。在执行此操作时,我希望它将它的值与另一个数组中的值进行比较。如果匹配,则意味着其中一个类别适用于这篇文章,它应该打印出一行代码来应用选中的属性。伟大的!除了它不起作用 =[

    while ( $row = mysqli_fetch_array($results, MYSQLI_ASSOC) ){
$cat[$i] = $row['category'];
$cat_id[$i] = $row['cat_id'];

echo '<li><input type="checkbox" ';

$catCount = count($link_cat);
for ($ct = 0; $ct < $catCount; $ct++){
if ($cat_id[$i] == $link_cat[$ct]){
echo 'checked="checked" ';
}
}

echo 'name="' . $cat_id[$i] . '" />' . $cat[$i] . '</li>';

$i++;
}

我以前从未真正做过嵌套循环(我怀疑这就是问题所在)。

问题似乎是当它运行时,$link_cat[0] 将在其中检查第一个类别 - 没有注册。它出现空白。在 for 循环中打印出变量证实了这一点。任何其他 [1] [2] 等都可以。它只是 [0]。但为什么?这似乎没有任何意义。我知道里面有东西,因为我在填充数组时打印了它的内容,只是为了检查一下。然而,它不仅仅在循环期间显示。有什么想法吗?

最佳答案

小错误修复(和明显的样式更改):您的版本可以多次打印出 checked="checked"。 $cat$cat_id 需要是数组吗?

while ( $row = mysqli_fetch_array($results, MYSQLI_ASSOC) ) {
$cat = $row['category'];
$cat_id = $row['cat_id'];

echo '<li><input type="checkbox" ';
if ( in_array($cat_id, $link_cat) ) {
echo 'checked="checked" ';
}
echo "name='$cat_id' />$cat</li>";
}

对于通常会抛出调试器的问题,我喜欢抛出一个很好的 print_r在评论 block 中(调试输出的查看源代码,在实时网站上更安全)。

echo '<!-- ' . print_r($link_cat, TRUE) . ' -->';

关于PHP 嵌套循环行为异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/632227/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com