while循环在PHP中的foreach循环中

时间:2017-01-13 14:12:21

标签: php loops foreach while-loop

我想创建一个表,第一列包含数据库中的名称,第二列包含数组中的值。 这就是我所拥有的

<table>
    <tr> 
        <?php $arr=array(3,5,2,4,1);                            
        $name= mysql_query("SELECT name FROM table")
        foreach ($arr as $rs){                          
            while($n=mysql_fetch_array($name)){ ?>                      
                <td><?=$n['name']?></td>
                <td><?=$rs?></td>
    </tr>
    <?php   }   }   ?>                          
</table>

我需要像

这样的输出
  

name_a 3
name_b 5
name_c 2
name_d 4
name_e 1

提前谢谢。

1 个答案:

答案 0 :(得分:2)

您不需要foreach循环。只需在while()循环中使用array_shift()函数来获取每个数组元素。所以你的代码应该是这样的:

<table>
    <tr> 
    <?php 
        $arr=array(3,5,2,4,1);                            
        $name= mysql_query("SELECT name FROM table")                        
        while($n=mysql_fetch_array($name)){ 
            $rs = array_shift($arr); 
    ?>                      
            <td><?=$n['name']?></td>
            <td><?=$rs?></td>
    </tr>
    <?php   
        }      
    ?>                          
</table>

此外,只有当表中的行数等于数组中的元素数时,您的业务逻辑工作才会。如果情况并非如此,那么您需要在查询中使用LIMIT子句。

旁注:不要使用mysql_*函数,从PHP 5.5开始不推荐使用它们,并且在PHP 7.0中完全删除它们。请改用mysqlipdoAnd this is why you shouldn't use mysql_* functions