【发布时间】:2009-07-30 22:00:03
【问题描述】:
$canada_territories = array("British Columbia" => "British Columbia", "Manitoba" => "Manitoba", "New Brunswick" => "New Brunswick", "Newfoundland and Labrador" => "Newfoundland and Labrador", "Nova Scotia" => "Nova Scotia", "Northwest Territories" => "Northwest Territories", "Nunavut" => "Nunavut", "Ontario" => "Ontario", "Prince Edward Island" => "Prince Edward Island", "Quebec" => "Quebec", "Saskatchewan" => "Saskatchewan", "Yukon" => "Yukon");
print_r($canada_territories);
最终成为
Array ( [British Columbia [Manitoba]] => British Columbia [Manitoba] => Manitoba [New Brunswick] => New Brunswick [Newfoundland and Labrador] => Newfoundland and Labrador [Nova Scotia] => Nova Scotia [Northwest Territories] => Northwest Territories [Nunavut] => Nunavut [Ontario] => Ontario [Prince Edward Island] => Prince Edward Island [Quebec] => Quebec [Saskatchewan] => Saskatchewan [Yukon] => Yukon )
ritish Columbia [Manitoba] 是通过添加下一个数组项的一部分而开始出错的地方
这是什么原因造成的?
我正在尝试构建这个数组来填充下拉表单,我对数组了解不够,我是否真的需要将不列颠哥伦比亚省两次添加到数组中才能循环遍历它们?
这是我通常使用的,但它通常有一个我设置的键和值,在这种情况下,我需要在下面显示两次值,而我通常会显示 2 个不同的值
foreach ($state_array as $sid => $statename) {
print '<option value=' . $sid . $selected . '>' . $statename . '</option>';
}
更新
我没有用标签包装,它显示了我在 chrome 中发布的方式,当我查看源代码时它实际上是正确的
【问题讨论】:
-
在这种情况下,由于您不需要键,因此您可以按照混乱的建议定义没有键的数组。在这种情况下,如果您使用 foreach($array as $key => $array) 那么 $key 将是整数数组索引(因为如果您不指定键,PHP 会自动添加从零开始的数组索引)。跨度>