2013-01-18 89 views
0

我有一種感覺,我會爲此而罵,但這是問題。PHP foreach循環與顯示MySQL結果時的連續數字

$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等)的數量相同的數列,並希望使用循環獲取結果。

+1

給定的代碼可能會給出一個語法錯誤。使用帶有PHP標籤的PHP標籤是沒有意義的。 –

回答

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

+0

這是一個非常詳細的解釋。現在我完全明白了!我討厭回答問題,但我不太明白。謝謝!皮帶中的另一種工具。 – LITguy

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

爲什麼不:

$db_rs['bullet_'.$seqnumber] 

如果沒有,你有什麼領域,什麼變量$ a的var_dump db_rs是什麼樣子?

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.