Php 将username和userid放入数组
我想要我的数组,类似这样的东西:Php 将username和userid放入数组,php,arrays,Php,Arrays,我想要我的数组,类似这样的东西: array("userid"=>"username","1"=>"ganeshfriends","2"=>"tester") $query = select username, userid from tbluser $result = mysql_query($query); while($row = mysql_fetch_array($result)){ $items = array($row['userid']=>$
array("userid"=>"username","1"=>"ganeshfriends","2"=>"tester")
$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);
mysql查询如下所示:
array("userid"=>"username","1"=>"ganeshfriends","2"=>"tester")
$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);
如何将userid设置为key,将username设置为val?试试以下方法:
$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)您可以执行以下操作:
$arr = array('userid' => 'username');
$result = mysql_query($query);
if(!$result) die("Query failed");
while($row = mysql_fetch_array($result)){
$arr[$row['userid']] = $row['username'];
}
既然每个人都在建议同一件事,我想我还是加入吧 当我遇到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);
它可能会增加两行,但它确实更容易看,并且避免括号中的括号。使用其他变量,比如Anthony,我只想说,不记得stripslashes(我认为在将它们写入数据库时,您已经完成了mysql\u real\u escape\u string()
由于您只使用关联访问,我建议使用
mysql\u fetch\u assoc()
而不是mysql\u fetch\u array()
由于您不需要指定想要由
mysql\u fetch\u array()
返回的关联数组,因此它创建了两个数组,一个是int索引
,另一个是string索引
(assoc[iative]),尽管这个短脚本不需要太多内存,而且可能速度很快,您应该始终记住性能
您能澄清一下您想做什么和不想做什么吗?据我所知,你已经有了解决办法。另外,第一个数组与其余数组有什么关系?另外,没有必要提出像这个社区维基这样的问题。你的问题是什么?你的代码看起来不错。另外,你的问题是一个普通的问题,而不是社区维基。我认为问题是,如果他现在按照设置的方式来做,如果有多行,他会在每次迭代中丢失上一个数组,因为它没有推送到数组中。我不理解OP的问题-$items[key]=value
与$items=array相同(key=>value)
,除了前者将附加到$items
(如果已经定义)之外,而后者将使$items
成为一个新数组。另外,在该行后面还有一个括号;-)它不应该是$items[$row['userid']=$row['username'])
或者这是我不熟悉的一种符号样式?很抱歉,我忘了删除“@Andy Shellam:使用数组(key=>value)表单,您每次使用$items[key]时都会重新分配$item变量=值您在数组中创建新元素,因为每个time@mck89-查看我的答案的漂亮版本。mysql\u real\u escape\u string()在查询上下文中转义值,它不会在数据库中留下斜杠。数据库值查询将返回不带斜杠的值。此时执行stripslashes()只会删除合法的斜杠。当他将“用户名”写入数据库时,(当使用mysql_查询(“插入…”)时),出于安全原因,他必须使用mysql_real_escape_字符串。进行安全查询。所以他必须用斜杠。。。