繁体   English   中英

使用HTML代码的Foreach PHP循环

[英]Foreach PHP loop with HTML code

我试图遍历数组并打印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>\""

}
?>

我很难在此回声部分上尝试正确使用语法。 我认为这是由于括号而导致的某些原因不会正确。

原始的HTML代码是

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

它必须像这样回声。

看起来您在使用引号引起语法错误。 尝试串联变量:

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>";

我倾向于将这样的东西分成几行以提高可读性:

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

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

}
?>

您可以使用foreach的替代语法(以及while等)。

foreach循环和回显的替代语法

<?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;?>

我不知道为什么要在多个值的每个值的开头放置“硬件”,并且还要将某些输出放在标记的非属性部分中,也许意思是:

<?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;?>

应该可以,但未经测试!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM