我正在尝试将php结果集转换为数组(使用foreach),我做得不对..
我有一个结果集:
$result
我正在循环播放如下:(可怕的错误)
while($row = mysql_fetch_array($result)) {
foreach (mysql_fetch_array($result) as $k => $v) {
echo "Fred's $k is ". $v['uid']. "\n";
}
}
我希望这个数组采用以下格式:
Array
(
[0] => Array //row1
(
[column1] => value
[column2] => value
[column3] => value
.
.
)
[1] => Array //row2
(
[column1] => value
[column2] => value
[column3] => value
.
.
)
[2] => Array //row3
(
[column1] => value
[column2] => value
[column3] => value
.
.
)
)
我是新手,请帮忙。
答案 0 :(得分:6)
$results = array();
while($row = mysql_fetch_assoc($result))
{
$results[] = $row;
}
//$results has all that you need
print_r($results);
答案 1 :(得分:1)
你不需要foreach这样做,你可以坚持你的while循环:
$result_set = array();
while($row = mysql_fetch_array($result)) {
$result_set[] = $row;
}
然后你可以像普通数组一样使用它:
$result_set[0]['column_name'];
答案 2 :(得分:0)
我无法理解但是 希望这会对你有所帮助:
$array = array();
while($row = mysql_fetch_array($result)) {
$array[] = $row['uid'];
}
答案 3 :(得分:0)
试试这个,
while($row = mysql_fetch_assoc($result)) {
$ar[]=$row;
}
答案 4 :(得分:0)
$results_array = array();
while($row = mysql_fetch_assoc($result)) {
$results_array[] = $row;
}
答案 5 :(得分:0)
如 here 所示,您无需调用提取函数来访问结果集值。
$resultArray = [];
foreach ($resultSetObject as $row) {
$resultArray[] = $row;
}
假设您的结果集中有行,这将生成关联数组的索引数组。
如果您想选择输出数组中包含哪些列,则可以通过使用关联数组语法来引用数据库表的列名 ($row['column_a']
) 来访问它们。
如果你希望所有东西都进入你的数组,那么你可以使用 mysqli 的 fetch_all()
跳过手动循环。