当前位置:  开发笔记 > 编程语言 > 正文

PHP嵌套循环意外地表现

如何解决《PHP嵌套循环意外地表现》经验,为你挑选了1个好方法。

我有一个数组,其中包含特定文章的类别($ link_cat).然后我使用mysql_fetch_array打印出带有复选框的列表中的所有可用类别.虽然它正在这样做,我希望它将它的值与其他数组的值进行比较.如果匹配,则表示其中一个类别适用于本文,并且应该打印出一行代码以应用checked属性.大!除了它没有工作= [

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

    echo '
  • ' . $cat[$i] . '
  • '; $i++; }

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

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



    1> Ryan Graham..:

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

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

    对于通常会在问题中抛出调试器的情况,我喜欢在注释块中输入一个漂亮的print_r(查看源代码用于调试输出,在live-ish站点上更安全).

    echo '';
    

    推荐阅读
    手机用户2402852387
    这个屌丝很懒,什么也没留下!
    DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
    Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有