我有一种感觉,我会因此受到责骂,但问题就在这里。
$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等),并希望使用循环获得结果。
答案 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.