你好我想把我的数组转换成其他数组类型,plz帮助我。一世 我用这个
$row = mysql_fetch_array($result, MYSQL_ASSOC);
,输出
Array ( [user_id] => 250 [name] => a [age] => sfsf [pic_path] => )
但我想要这种格式的输出
Array ( [0] => Array ( [user_id] => 250 [name] => a [age] => sfsf [pic_path] => ) [1] => Array ( [user_id] => 251 [name] => b [age] => sfsfs [pic_path] => ) )
那么我应该用什么函数来获取这种格式的数组
答案 0 :(得分:18)
$data = array(); // create a variable to hold the information
while (($row = mysql_fetch_array($result, MYSQL_ASSOC)) !== false){
$data[] = $row; // add the row in to the results (data) array
}
print_r($data); // print result
更新2月' 现在,2017年,它建议您使用PDO而不是mysql_ *。更安全,可以使用fetchAll
原生返回(如“TrexXx答案”中所示)。
答案 1 :(得分:6)
避免执行循环的唯一方法是使用PDO(http://fr2.php.net/manual/fr/book.pdo.php),这是一种更好的方式来访问PHP中的数据库,你可以做这个:
<?php
$pdo = new PDO('mysql:host=localhost;dbname=test', 'root', '');
$q = $pdo->query('select * from yourtable');
$r = $q->fetchAll();
var_dump($r);
答案 2 :(得分:2)
如果需要将查询返回的所有行存储在数组中,请尝试以下操作:
$result = array();
while ( $row = mysql_fetch_array($result, MYSQL_ASSOC) ){
$result[] = $row
}
答案 3 :(得分:1)
$row = array();
$row[] = mysql_fetch_array($result, MYSQL_ASSOC);
通常你会在循环
中分配这样的结果$rows = array();
while ($result = mysql_fetch_array($result, MYSQL_ASSOC)) {
$rows[] = $result;
}
答案 4 :(得分:1)
只能通过一个命令从SQL查询的结果集中获取多维数组。您需要为每个SQL结果行重复一次函数mysql_fetch_array
。
此外,您可以使用mysql_fetch_assoc
将结果作为关联数组。
实现目标:
$num = mysql_num_rows($result);
for ($i = 0; $i < $num; $i++)
{
$myArray[] = mysql_fetch_assoc($result);
}