我有一个简单的mySQL数据库表,我将其加载到PHP数组中。我希望mySQL表的id
列(自动递增,但我认为不相关)是PHP数组的每个元素的数组键,而不是数组的数组。 / p>
而不是:
Array(
Array(id=>'1', field1=>someval, field2=>val),
Array(id=>'2', field1=>val, field2=>otherval),
Array(id=>'4', field1=>val, field2=>otherval)
)
我想要这个:
Array(
1=>Array(field1=>someval, field2=>val),
2=>Array(field1=>val, field2=>otherval),
4=>Array(field1=>val, field2=>otherval)
)
我不关心id
是否留在每行的关联数组中。
有没有办法在没有循环原始mySQL数组并耗费大量处理时间的情况下执行此操作?
答案 0 :(得分:2)
你可以在这样的获取时间执行此操作:
$query_ret = mysql_query(...);
$result = array();
while ($row = mysql_fetch_assoc($query_ret)) {
$result[array_shift($row)] = $row;
}
答案 1 :(得分:1)
“有没有办法在没有循环原始mySQL数组并耗费大量处理时间的情况下执行此操作?”
我相信答案是没有。您可以做的最好的事情是在循环遍历数组时尽量提高效率。
答案 2 :(得分:0)
如果你有PDO,你肯定应该从PDO文档中看到示例#3 for fetchall:http://www.php.net/manual/en/pdostatement.fetchall.php#example-1022
这样不仅可以更有效地利用服务器的内存和处理能力......还可以让您利用PDO的其他几个强大的API。