PHP foreach循环与序列号显示MySQL结果

时间:2013-01-18 08:27:16

标签: php mysql foreach

我有一种感觉,我会因此受到责骂,但问题就在这里。

$seq_numbers = range('1', '24');
foreach($seq_numbers as $seq_number) 
{
    Bullet <?php echo $seq_number;?>  
    // (this successfully creates - Bullet 1, Bullet 2, etc. - 
        below is the problem.

    <?php echo $db_rs['bullet_($seqnumber)'];?>
}   // this one doesn't work.  

我试过了 用大括号{}

我基本上有一些名称相同的列,除了最后的数字(bullet_1,bullet_2,bullet_3等),并希望使用循环获得结果。

4 个答案:

答案 0 :(得分:5)

您的问题是,PHP不会替换用单引号括起来的字符串中的变量。您需要使用$db_rs["bullet_{$seq_number}"]或其中之一:

<?php
foreach ($seq_numbers as $seq_number) {
   $key = 'bullet_' . $seq_number;
   echo $db_rs[$key];
}

更短,但不太清楚:

<?php
foreach ($seq_numbers as $seq_number) {
   echo $db_rs['bullet_' . $seq_number];
}

完全不同的方法是循环结果数组。那你甚至不需要$seq_numbers。就像事后的想法一样。

<?php
foreach ($db_rs as $key => $value) {
   if (substr($key, 0, 7) == 'bullet_') {
      echo $value;
   }
}

哦......并注意你如何拼写你的变量。您使用的是$seq_number$seqnumber

答案 1 :(得分:1)

<?php echo $db_rs['bullet_'.$seqnumber];?>

答案 2 :(得分:1)

为什么不:

$db_rs['bullet_'.$seqnumber]

如果没有,你的字段是什么,$ db_rs的var_dump是什么样的?

答案 3 :(得分:0)

试试这个......

$seq_numbers = range('1', '24');
foreach($seq_numbers as $seq_number) 
{
    Bullet <?php echo $seq_number;?>  
    // (this successfully creates - Bullet 1, Bullet 2, etc. - 
        below is the problem.

    <?php echo $db_rs["bullet_($seqnumber)"];?>
}   // now it works.