前循环中的两个数组

2022-08-30 07:24:17

我想使用两个数组生成一个数组,一个包含国家/地区代码,另一个包含国家/地区名称。selectbox

下面是一个示例:

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

这种方法对我不起作用。有什么建议吗?


答案 1
foreach( $codes as $code and $names as $name ) { }

这是行不通的。

你可能想要这样的东西...

foreach( $codes as $index => $code ) {
   echo '<option value="' . $code . '">' . $names[$index] . '</option>';
}

或者,使代码成为数组的密钥会容易得多...$names

$names = array(
   'tn' => 'Tunisia',
   'us' => 'United States',
   ...
);

答案 2

foreach一次只对一个阵列进行操作。

数组的结构方式,你可以将它们分成一个键值对数组,然后是单个数组:array_combine()foreach

foreach (array_combine($codes, $names) as $code => $name) {
    echo '<option value="' . $code . '">' . $name . '</option>';
}

或者,如其他答案所示,您可以改为对关联数组进行硬编码。