我想使用两个数组生成一个选择框,一个包含国家/地区代码,另一个包含国家/地区名称。
这是一个例子:
<?php
$codes = array('tn','us','fr');
$names = array('Tunisia','United States','France');
foreach( $codes as $code and $names as $name ) {
echo '<option value="' . $code . '">' . $name . '</option>';
}
?>
这种方法对我不起作用。有什么建议吗?
由于
答案 0 :(得分:5)
它必须是2个阵列?如果你只使用一个关联数组就更容易了。
像:
$countries = array('tn'=> "Tunisia", "us"=>'United States',"fr"=>'France');
foreach($countries as $code=>$name) {
echo '<option value="' . $code . '">' . $name . '</option>';
}
如果您已经拥有这两个数组,则可以将它们组合在一起:
$codes = array('tn','us','fr');
$names = array('Tunisia','United States','France');
$countries = array_combine($codes, $names);
答案 1 :(得分:2)
如果你的数组大小相同,你可以使用如下
<?php
$codes = array('tn','us','fr');
$names = array('Tunisia','United States','France');
$i=0
foreach( $names as $name ) {
echo '<option value="' . $codes [$i] . '">' . $name . '</option>';
$i = $i+1
}
?>
答案 2 :(得分:2)
如果两个数组都完全索引,那么你可以单独迭代一个数组
for($i=0; $i<count($codes);$i++) {
echo '<option value="' . $code[$i] . '">' . $name[$i] . '</option>';
}
只有当两个数组的值都匹配
时才会有效答案 3 :(得分:2)
这将从数组创建一个下拉菜单,并自动分配其各自的值。
<?php
$names = array('tn'=>'Tunisia','us'=>'United States','fr'=>'France');
echo '<select name="countries">';
foreach($names AS $let=>$word){
echo '<option value="'.$let.'">'.$word.'</option>';
}
echo '</select>';
?>
<select name="countries">
<?php
$countries = array('tn'=> "Tunisia", "us"=>'United States',"fr"=>'France');
foreach($countries as $select=>$country_name){
echo '<option value="' . $select . '">' . $country_name . '</option>';
}
?>
</select>
<?php
$my_array = array(
'tn' => 'Tunisia',
'us' => 'United States',
'fr' => 'France'
);
echo '<select name="countries">';
echo '<option value="none">Select...</option>';
foreach ($my_array as $k => $v) {
echo '<option value="' . $k . '">' . $v . '</option>';
}
echo '</select>';
?>
答案 4 :(得分:1)
对两个数组使用for循环:
$codes = array('tn','us','fr');
$names = array('Tunisia','United States','France');
$i = 0;
$length = count($codes);
for($i;$i<$length;$i++) {
echo '<option value="' . $code[$i] . '">' . $name[$i] . '</option>';
}
这对你有用。
另一种方式是:
$codes = array('tn','us','fr');
$names = array('Tunisia','United States','France');
$newarr = array_combine($codes,$names);
foreach($newarr as $index => $value){
echo '<option value="' . $index . '">' . $value . '</option>';
}
答案 5 :(得分:1)
foreach( $codes as $index => $code ) {
echo '<option value="' . $code . '">' . $names[$index] . '</option>';
}
答案 6 :(得分:0)
我会这样做:
$names = array('Tunisia' : 'tn','United States' :'us','France': 'fr');
foreach($names as $key=>$value) {
echo '<option value="' . $value . '">' . $key . '</option>';
}
另一种方式可以是:
$codes = array('tn','us','fr');
$names = array('Tunisia','United States','France');
$count=0
foreach( $names as $name ) {
echo '<option value="' . $codes [$i] . '">' . $name . '</option>';
$count = $count + 1;
}
答案 7 :(得分:0)
试试这个
foreach( $codes as $index => $code ) {
echo '<option value="' . $code . '">' . $names[$index] . '</option>';
}