Foreach的关键价值

时间:2013-05-28 09:54:04

标签: php sql

我的代码是2部分,我不能使它成为一部分......由于很多原因,我只能编辑第一部分

第一部分是:

<?php

$w = $db->query("SELECT name,code FROM languages");
$languages = array();
while ($row = $db->fetchAll($w)) {
    $languages[] = $row['name'];
}
?>

第二部分是:

<?php

foreach ($languages as $code => $name) {
    echo 'Language is : ' . $name . ' | Code is : ' . $code;
}
?>

目前的输出是:

Language is : English | Code is : 0
Language is : x       | Code is : 1
ect...

如您所见,$ name是语言名称,$ code是键,键值为0,1,2,3,...等等

我要做的是让密钥($ code)=真正的语言代码来获得输出

Language is : English | Code is : en

请问好吗?

谢谢。

3 个答案:

答案 0 :(得分:4)

只需更改行

即可
$languages[] = $row['name'];

到这一个:

$languages[$row['code']] = $row['name'];

使用没有索引的数组(例如$array[] =)只会使用数字键将值附加到末尾。

答案 1 :(得分:1)

真实语言代码是否存储在您的数据库中?

如果是这样的话,第一部分应该是

 $w = $db->query("SELECT name,code FROM languages");
 $languages = array();
 while($row = $db->fetchAll($w))
{
$languages[$row['code']] = $row['name'];
}

答案 2 :(得分:1)

更改

$languages[] = $row['name'];

$languages[strtolower(substr($row['name'],0,2))] = $row['name'];