将用户名和用户ID放入数组中

时间:2010-03-26 09:20:03

标签: php arrays

我想要我的数组,就像这样:

array("userid"=>"username","1"=>"ganeshfriends","2"=>"tester")

mysql查询这样的东西:

$query = select username, userid from tbluser

$result = mysql_query($query);

while($row = mysql_fetch_array($result)){
    $items = array($row['userid']=>$row['username']);
}
print_r($items);

如何将用户ID设为密钥,用户名为val?

5 个答案:

答案 0 :(得分:5)

试试这个:

$query = "select username, userid from tbluser";

$result = mysql_query($query);
$items=array();
while($row = mysql_fetch_array($result)){
    $items[$row['userid']]=$row['username'];
}
print_r($items);

问题是您在while块的每个循环中删除并重新分配结果数组($ items)

答案 1 :(得分:3)

由于每个人都在暗示同样的事情,我想我也可以加入。

当我遇到来自sql值的键的情况时,我喜欢先将它们设置为变量,这样看起来更好看:

$query = "select username, userid from tbluser";

$result = mysql_query($query);

while($row = mysql_fetch_array($result)){
    $userid = $row['userid'];
    $username = $row['username']
    $items[$userid] = $username;
}
print_r($items);

它可能会添加两行,但它确实更容易在眼睛上,并避免括号中的括号。

答案 2 :(得分:1)

你可以这样做:

$arr = array('userid' => 'username');

$result = mysql_query($query);
if(!$result) die("Query failed");

while($row = mysql_fetch_array($result)){
  $arr[$row['userid']] = $row['username'];
}

答案 3 :(得分:0)

使用其他变量,比如Anthony,我只想说,不记得striplashes(我认为你把它们写入tha数据库时已经完成了mysql_real_escape_string())


while($row = mysql_fetch_array($result)){
    $userid = $row['userid'];
    $username = stripslashes($row['username']);
    $items[$userid] = $username;
}

答案 4 :(得分:0)

由于您只使用关联访问,我建议使用mysql_fetch_assoc()代替mysql_fetch_array()

因为你没有想要一个由mysql_fetch_array()给出的关联数组,它会创建2个数组,一个数组为int-indexes,另一个数量为string-indexes(assoc [iative]),即使这个简短的脚本没有使用太多内存并且可能具有高速度,但您应该始终记住performance