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

LIT*_*guy 0 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.  
Run Code Online (Sandbox Code Playgroud)

我试过大括号{}

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

Til*_*lge 5

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

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

更短,但不太清楚:

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

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

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

哦......并注意你如何拼写你的变量.你正在使用$seq_number$seqnumber.