所以这让我抓狂。我需要从mySQL中提取表行,然后对它们进行排序,但之后我需要将它们作为单个数组输出。主要是因为这之后的代码是为了接受这一点而写的。
这是我的密码。如果你有什么建议,请告诉我。
<?php
include 'connect.php';
$query = mysql_query("SELECT * FROM users");
while ($data = mysql_fetch_assoc($query))
{
$newarray[]=$data;
$dbusername = $data['username'];
$dbpassword = $data['password'];
$logid = $data['id'];
print_r ($data);
echo "<br/>";
}
foreach ($newarray as $key => $row) {
$volume[$key] = $row['password'];
}
array_multisort($volume, SORT_ASC, $newarray);
print_r($newarray);
?>
这样做的结果是:
Array (
[0] => Array ( [id] => 4 [rating] => 18 [password] => 1981 [username] => 212060064)
[1] => Array ( [id] => 2 [rating] => 6 [password] => 1983 [username] => 212060062)
[2] => Array ( [id] => 3 [rating] => 5 [password] => 1984 [username] => 212060063)
[3] => Array ( [id] => 1 [rating] => 3 [password] => 1988 [username] => 212060061)
)
然而,我需要像这样输出它们:
Array ( [id] => 4 [rating] => 18 [password] => 1981 [username] => 212060064)
Array ( [id] => 2 [rating] => 6 [password] => 1983 [username] => 212060062)
Array ( [id] => 3 [rating] => 5 [password] => 1984 [username] => 212060063)
Array ( [id] => 1 [rating] => 3 [password] => 1988 [username] => 212060061)
根据您的演讲:
这样做的结果是:
Array ( [0] => Array ( [id] => 4 [rating] => 18 [password] => 1981 [username] => 212060064) [1] => Array ( [id] => 2 [rating] => 6 [password] => 1983 [username] => 212060062) [2] => Array ( [id] => 3 [rating] => 5 [password] => 1984 [username] => 212060063) [3] => Array ( [id] => 1 [rating] => 3 [password] => 1988 [username] => 212060061) )
然而,我需要像这样输出它们:
Array ( [id] => 4 [rating] => 18 [password] => 1981 [username] => 212060064) Array ( [id] => 2 [rating] => 6 [password] => 1983 [username] => 212060062) Array ( [id] => 3 [rating] => 5 [password] => 1984 [username] => 212060063) Array ( [id] => 1 [rating] => 3 [password] => 1988 [username] => 212060061)
因此,在SORT的方式上没有发现任何差异。
在您的最后一行代码中,替换:
print_r($newarray);
发件人:
foreach($newarray as $child_array)
{
print_r($child_array);
}
最简单的事情可能是直接在SQL:中对它们进行排序
SELECT * FROM users ORDER BY id
我个人尽量避免在array_multissort上挣扎,因为它很难使用。我还没有发现_multisort比usort或让数据库层处理它更容易的问题。
您需要单独的数组,对吗?此代码将创建单个阵列:
include 'connect.php';
$query = mysql_query("SELECT * FROM users");
$x = 0;
while($data = mysql_fetch_assoc($query)){
$variable_name = 'record'.$x;
$$variable_name = $data;
$x++;
}
print_r($record0);
print_r($record1);
//etc...
第一次运行时的双$$将是$record0