php数组在while循环中复制格式

时间:2013-01-29 02:02:13

标签: php

我想输出查询结果,以便格式与:

相同
$links = array(
'Link 1' => '/link1',
'Link 2' => '/link2'
);

所以查询是

$query = "SELECT * FROM link";
$result = mysql_query($query, $connection) or die(mysql_error());
$row = mysql_fetch_assoc($result)

需要输出的字段是:

$row['link_title'] and $row['url']

3 个答案:

答案 0 :(得分:1)

这可能比期望或必要的要复杂一些,但这对你有用:

$a = 0;
while ($row = mysql_fetch_assoc($result)) {
    foreach ($row as $k => $v) {
        // Assumes table column name is 'link_title' for the link title
        if ($k == 'link_title') {$title[$a] = $v;} 
        // Assumes table column name is 'url' for the URL
        if ($k == 'url') {$url[$a] = $v;}
    }
    $a++;
}
$i = 0;
foreach ($title as $t) {
    $links[$t] = $url[$i];
    $i++;
}
print_r($links);

正如@Class所说,如果link_title从不重复,那么你可以做这样的事情:

while ($row = mysql_fetch_assoc($result)) {
    $array[$row['link_title']] = $row['url'];
}

由于link_title两个进程输出都是唯一的:

Array ( 
    [Moxiecode] => moxiecode.com 
    [Freshmeat] => freshmeat.com 
)

数据库表+内容:

id | link_title |     url       |
---+------------+---------------|
1  | Moxiecode  | moxiecode.com |
---+------------+---------------|
2  | Freshmeat  | freshmeat.com |

答案 1 :(得分:0)

你在寻找这样的东西:

$links = array();
while(foo){
    $links[$row['link_title']] = $row['url'];
}

如果标题与上例中的标题相同,则可以使用可能导致覆盖的内容

$link = array();
$title = array()
while($row = mysql_fetch_assoc($result)){
    array_push($title, $row['link_title']);
    array_push($link, $row['url']);
}

$links = array_combine($title, $link);

另外使用PDO或mysqli函数不推荐使用mysql。这是PDO

的教程

编辑:示例:http://codepad.viper-7.com/uKIMgp我不知道如何使用数据库创建示例,但它足够接近。

答案 2 :(得分:0)

你想要回显出数组的结构吗?

foreach ($Array AS $Values => $Keys)
{
 echo "Array Key: <b>". $Keys ."</b>  Array Value:<b>". $Values ."</b>";
}

这将回显你的exampled数组的结构