-4

国コードを含む配列と国名を含む配列の 2 つの配列を使用して、選択ボックスを生成したいと考えています。

これは例です:

<?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>';

}

?>

この方法は私にはうまくいきませんでした。助言がありますか?

ありがとう

4

8 に答える 8

5

それは2つの配列でなければなりませんか?連想配列を使用するだけであれば、より簡単です。

お気に入り:

$countries = array('tn'=> "Tunisia", "us"=>'United States',"fr"=>'France');
foreach($countries as $code=>$name) {
     echo '<option value="' . $code . '">' . $name . '</option>';    
}

これらの 2 つの配列が既にある場合は、それらを組み合わせることができます。

$codes = array('tn','us','fr');
$names = array('Tunisia','United States','France');
$countries = array_combine($codes, $names);

ここにデモがあります: http://codepad.org/nYjCk3uQ

于 2013-08-07T05:22:19.983 に答える
2

両方の配列が完全にインデックス付けされている場合、1 つの配列だけを反復できます

for($i=0; $i<count($codes);$i++) {

echo '<option value="' . $code[$i] . '">' . $name[$i] . '</option>';

}

これは、両方の配列の値に一致するインデックスがある場合にのみ機能します

于 2013-08-07T05:24:39.000 に答える
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    
}

?>
于 2013-08-07T05:22:40.413 に答える
2

すべて完全にテスト済み

配列から動的ドロップダウンを作成する 3 つの方法。

これにより、配列からドロップダウン メニューが作成され、それぞれの値が自動的に割り当てられます。

方法 #1 (通常の配列)

<?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>';
 
?>


方法 2 (通常の配列)

<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>


方法 #3 (連想配列)

<?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>';
?>
于 2013-08-07T05:33:14.230 に答える
1

2 つの配列に対して 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>';
}
于 2013-08-07T05:23:01.723 に答える
1
foreach( $codes as $index => $code ) {
   echo '<option value="' . $code . '">' . $names[$index] . '</option>';
}
于 2013-08-07T05:23:42.843 に答える
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;  
}
于 2013-08-07T05:23:32.040 に答える
0

これを試して

 foreach( $codes as $index => $code ) {
    echo '<option value="' . $code . '">' . $names[$index] . '</option>';
     }
于 2013-08-07T05:24:16.373 に答える