带有HTML代码的Foreach PHP循环

时间:2014-07-22 08:03:52

标签: php mybb

我正在尝试遍历数组并打印HTML。

<?php
$categories = array('Hardware', 'Software', 'Game Items', 'Game Accounts');
?>

有些HTML在这里。我只是希望页面顶部的数组能够轻松编辑。

<?php
foreach($categories as $category){

    echo "<option value=\"Hardware\"{$GLOBALS['filters_set']['trdfcat']['selected']['\" . $category . \"']}>\" . $category . \"</option>\""

}
?>

我很难在这个echo部分上尝试正确的语法。有些原因不会回应我认为是因为括号。

原始HTML代码是

<option value="Hardware"{$GLOBALS['filters_set']['trdfcat']['selected']['Hardware']}>Hardware</option>

它必须像这样回应。

3 个答案:

答案 0 :(得分:3)

看起来你的引号有一些语法错误。尝试连接变量:

echo "<option value='Hardware" . $GLOBALS['filters_set']['trdfcat']['selected'][$category] . "'>$category</option>";

如果你真的想插入:

echo "<option value='Hardware{$GLOBALS['filters_set']['trdfcat']['selected'][$category]}'>$category</option>";

如果它更容易,你也可以拆分:

echo "<option value='Hardware";
echo $GLOBALS['filters_set']['trdfcat']['selected'][$category];
echo "'>$category</option>";

答案 1 :(得分:1)

为了更好的可读性,我倾向于将这样的东西分成不同的部分:

<?php
foreach($categories as $category) {

    echo "<option value=\"Hardware\"";
    echo $GLOBALS['filters_set']['trdfcat']['selected'][$category];
    echo ">" . $category . "</option>";

}
?>

答案 2 :(得分:1)

Theres是一种替代语法,可用于foreach(以及等等)。

foreach循环和echo的替代语法

<?php foreach($iterable as $item): ?>
<span><?=$item?></span>
<?php endforeach;?>

我喜欢使用这个语法,因为它对我来说看起来更干净。您的代码适合我的建议:

<?php
$categories = array('Hardware', 'Software', 'Game Items', 'Game Accounts');
?>
//Some html...
<?php foreach($categories as $category): ?>
<option value="Hardware" <?=$GLOBALS['filters_set']['trdfcat']['selected']['Hardware'];?>><?=$category;?></option>
<?php endforeach;?>

我不知道为什么如果有多个类别并且将一些输出放在标签的非属性部分中,你会将&#34;硬件放在每个值的开头?也许你的意思是:

<?php
$categories = array('Hardware', 'Software', 'Game Items', 'Game Accounts');
?>
//Some html...
<?php foreach($categories as $category): ?>
<option value="<?=$GLOBALS['filters_set']['trdfcat']['selected'][$category];?>"><?=$category;?></option>
<?php endforeach;?>

应该没问题,但没有经过测试!