PHP - 将多个选择选项存储到数组中,并将ID作为数组键存储

时间:2014-08-18 15:02:12

标签: php arrays

我有多选的选择框选项列表。

<select multiple="MULTIPLE" size="20" name="facilities[]">
   <option id="idOne" value="Value One">Value One</option>
   <option id="idTwo" value="Value Two">Value Two</option>
   <option id="idThree" value="Value Three">Value Three</option>
</select>

我已经完成了可以将值存储到我的数据库中的数组的PHP代码,但是...我现在想要的是,可以使用选项中的ID作为数组的键,所以当你存储数组看起来像下面的样本

array('idOne'=>'Value One', 'idTwo'=>Value Two, 'idThree'=>'Value Three')

而不是array([0]=>'Value One', [1]=>Value Two, [2]=>'Value Three')(我现在得到的)。

任何帮助都会非常感激:)

抱歉我的英语不好。

1 个答案:

答案 0 :(得分:0)

根据定义,只有value代码的option将在您的POST中传递。这里有几个选项

首先,您需要知道另一端的值并将它们结合起来。这可能是更多的工作,但您将始终拥有所选值的列表。

  $vals = array('idOne'=>'Value One', 'idTwo'=>'Value Two', 'idThree'=>'Value Three');
  foreach($vals as $key => $row) {
       if(array_search($row, $_POST['facilities']) === false) unset($vals[$key]);
  }

第二种方法是使用JavaScript并构建一个选定的text值列表和POST(通过隐藏字段或使用AJAX)。这样做风险更大,因为数据会在客户手中,但仍然可行。