我有一个脚本,select
来自array
的字母列表,但问题只是display
数组中的最后一个元素。< / p>
PHP:
<?php
$letters = array("A", "B", "C");
foreach($letters as $letter)
{
$data['#LETTER#'] = $letter;
}
$html = file_get_contents('test.html');
echo $html = str_replace(array_keys($data),array_values($data),$html);
?>
HTML:
<html>
<head>
<title>TRY</title>
</head>
<body>
<select>
<option>#LETTER#</option>
</select>
</body>
</html>
脚本上方的输出仅为C
,这是数组中的最后一个元素,我只能选择字母 C 而非 A B C
期望的输出:
A
B
C
为什么会这样?有人可以帮忙吗?我很感激解释。我目前是php的新手。
答案 0 :(得分:2)
你应该这样:
HTML:
<html>
<head>
<title>TRY</title>
</head>
<body>
<select>
#LETTER_SELECT#
</select>
</body>
</html>
PHP:
$letters = array("A", "B", "C");
$replace_select = "";
foreach($letters as $letter)
{
$replace_select .= "<option>".$letter."</option>";
}
$html = file_get_contents("test.html");
echo $html = str_replace("#LETTER_SELECT#",$replace_select);
答案 1 :(得分:1)
尝试使用喜欢。你有所有字符的单个密钥,你需要使用php的字符串连接来创建一个字符串。
foreach($letters as $letter)
{
$data['#LETTER#'] .= "<option value=$letter>".$letter."</option>";
}
<select>
#LETTER#
</select>
答案 2 :(得分:0)
<?php
$letters = array("A", "B", "C");
foreach($letters as $letter)
{
$data['#LETTER#'] = $letter;
}
foreach ($data as $key => $value)
{
echo "Key: $key; Value: $value<br />\n";
}
?>
结果:
关键:#LETTER#;价值:C
$ data数组中只有一个元素。试试$data['#LETTER'.$letter.'#'] = $letter;
答案 3 :(得分:0)
我实际上并没有得到你想要做的事情,但似乎你的循环总是只为数组的1个元素分配值,这是#LETTER#..为什么不使用
$data[] = $letter
而是将其循环到select标签
中答案 4 :(得分:0)
每次迭代都会覆盖$ data中的数组元素。
您可以在HTML中实现PHP。
<select>
<?php
foreach($letters as $letter)
{
<option> $letter </option>
}
?>
</select>