0

我的代码是两部分,我不能把它做成一个……由于很多原因,我只能编辑第一部分

第一部分是:

<?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,..ect

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

Language is : English | Code is : en

请问有什么想法吗?

谢谢你。

4

3 回答 3

4

换行就好

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

对此:

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

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

于 2013-05-28T09:56:20.807 回答
1

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

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

 $w = $db->query("SELECT name,code FROM languages");
 $languages = array();
 while($row = $db->fetchAll($w))
{
$languages[$row['code']] = $row['name'];
}
于 2013-05-28T09:57:11.437 回答
1

改变

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

$languages[strtolower(substr($row['name'],0,2))] = $row['name'];
于 2013-05-28T09:57:54.623 回答