繁体   English   中英

PHP关联数组,数字为索引

[英]PHP associative array with number as index

我有一个带有多个选择下拉列表的表单。 我用数字给每个人命名。

问题
当我对结果进行foreach循环时,我可以获取所选的值,但无法获取密钥? 它们以0开头,而不是以1开头。

HTML:

<select name="1">
    <option value="1">Admin</option>
    <option value="2">Moderator</option>
    <option value="3" selected="selected">User</option>
    <option value="4">More</option>
</select>

<select name="2">
    <option value="1" selected="selected">Admin</option>
    <option value="2">Moderator</option>
    <option value="3">User</option>
    <option value="4">More</option>
</select>

<select name="3">
    <option value="1" selected="selected">Admin</option>
    <option value="2">Moderator</option>
    <option value="3">User</option>
    <option value="4">More</option>
</select>

表单提交(var_dump):

array(4) {
  [0]=>
  string(1) "3"
  [1]=>
  string(1) "1"
  [2]=>
  string(1) "1"
}

的PHP

$arr = $form_array;
foreach( $form_array as $key => $value )
{
   echo "The key is: $key <br>";
   echo "The value is: $value <br>";
}

那是因为你的数组是数字索引的。 是确012和的311分别。

阅读有关PHP中数组的更多信息。

从您的评论看,您似乎需要的是一组选项,这些选项经过键控,以便您可以将它们与当前数组匹配:

array(1 => 'Admin',
  2 => 'Moderator',
  3 => 'User',
  4 => 'More');

我无法重现此行为。 做一个$ _POST的var_dump我得到的是:

array(3) {
  [1]=>
  string(1) "3"
  [2]=>
  string(1) "1"
  [3]=>
  string(1) "1"
}

如果您正在var_dumping $ _POST并仍获得基于0的键,则它必须是特定于版本的PHP奇数,我建议改用字符串键(“ value1”,“ value2”,“ value3”等)。 如果您正在var_dumping一个不同的数组,那么可能是一些代码没有向我们展示正在重新索引该数组的代码。

暂无
暂无

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

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