我创建了一个简单的PHP数组,我希望在Web表单上使用选择输入(选择输入以前在HTML中是硬编码的)。这是阵列:
$fruits = array(
'fruit' => 'apple',
'fruit' => 'orange',
'vegetable' => 'potato'
);
这是选择输入:
<label for="Food">Select the Food</label><br>
<select id="Subdiscipline" name="Subdiscipline">
<option value="*">- No Selection - </option>
<?php
$output = "";
$selected = false;
foreach($fruits as $fruit => $value) {
$fruit = htmlspecialchars($fruit);
$output .= "<option value=\"$fruit\"";
if ($fruit == $previousFruitSelection) {
$selected = true;
$output .= " selected";
}
$output .= ">$value</option>";
}
echo $output;
?>
</select>
现在的问题是我不再硬编码选择菜单的选项是'apple'的选项不再出现,大概是因为你不能在数组中有重复的键。有没有办法解决这个问题,使用PHP创建一个用于驱动选择选项的数组,但允许多个选项使用相同的'value = fruit'?
答案 0 :(得分:2)
您可以使用多维数组:
$fruits = array(
'fruit' => array ('apple', 'orange')
'vegetable' => array ('potato')
);
Ofc你也必须改变循环并迭代内部数组。
keys
是唯一的;)
答案 1 :(得分:1)
PHP数组是一个简单的关联数组。它将键与值匹配,因此您不能在数组中有2个水果,因为键的点是唯一的,以便能够识别数组中的某个元素。
然而,有多种方法可以解决这个问题。最容易想到的是制作2个数组,一个用于“键”,一个用于“值”。所以第一个数组是水果,水果,蔬菜,第二个是苹果,橙子,土豆。
您也可以使用更复杂的数据结构,但我可能会做的是将数组指定为值。你可以这样做,数组中的数组。要检查它是如何以语法方式完成的,请查看php.net,更具体地说,请查看以下链接中的示例#6,我相信这可能会帮助您: http://php.net/manual/en/language.types.array.php