首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >foreach循环中的两个数组

foreach循环中的两个数组
EN

Stack Overflow用户
提问于 2010-12-19 07:41:52
回答 20查看 289.8K关注 0票数 107

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

这是一个示例:

代码语言:javascript
复制
<?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>';
    }
?>

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

EN

回答 20

Stack Overflow用户

回答已采纳

发布于 2010-12-19 07:43:25

代码语言:javascript
复制
foreach( $codes as $code and $names as $name ) { }

这是无效的。

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

代码语言:javascript
复制
foreach( $codes as $index => $code ) {
   echo '<option value="' . $code . '">' . $names[$index] . '</option>';
}

或者,让代码成为$names数组的键要容易得多……

代码语言:javascript
复制
$names = array(
   'tn' => 'Tunisia',
   'us' => 'United States',
   ...
);
票数 171
EN

Stack Overflow用户

发布于 2010-12-19 07:44:22

foreach一次仅在一个阵列上运行。

按照数组的结构方式,您可以将它们array_combine()到一个键-值对数组中,然后对该单个数组执行foreach操作:

代码语言:javascript
复制
foreach (array_combine($codes, $names) as $code => $name) {
    echo '<option value="' . $code . '">' . $name . '</option>';
}

或者,正如在其他答案中看到的,您可以硬编码一个关联数组。

票数 90
EN

Stack Overflow用户

发布于 2010-12-19 07:44:00

使用array_combine()将数组融合在一起并迭代结果。

代码语言:javascript
复制
$countries = array_combine($codes, $names);
票数 29
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4480803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档