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)'];?>
}   // this one doesn't work.  

中かっこで試しました{}

基本的に、最後の番号(bullet_1、bullet_2、bullet_3など)を除いて同じ名前の列がいくつかあり、ループを使用して結果を取得したいと考えています。

4

4 に答える 4

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います。

于 2013-01-18T08:29:20.383 に答える
1
<?php echo $db_rs['bullet_'.$seqnumber];?>
于 2013-01-18T08:29:23.940 に答える
1

なぜだめですか:

$db_rs['bullet_'.$seqnumber]

そうでない場合、あなたのフィールドは何ですか、そして$ db_rsのvar_dumpはどのように見えますか?

于 2013-01-18T08:31:57.853 に答える
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.
于 2013-01-18T08:41:17.203 に答える