[英]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.