我有一个这样创建的数组:
$i = 0;
$files = array();
while ($file = mysql_fetch_array($query_files)) {
$files[$i] = array();
$files[$i] = $file;
$i++;
}
而且我需要能够根据每个 $file['name'] aka $files[$i]['name'] 对 $files 数组进行排序。
我该怎么做呢?谢谢!
添加ORDER BY NAME
到您的查询。严重地。这是最快、最安全、最安全的方法。我不是在开玩笑。此外,您会告诉数据库做一些它擅长的事情,而 PHP 只能做这件事。最后,您可以选择索引数据库的名称列,而 PHP 不提供索引。
如果您绝对必须自己对其进行排序,那么您需要使用usort
.
// this example is almost a clone of something in the docs.
function cmp($a, $b)
{
return strcmp($a["name"], $b["name"]);
}
usort($files, "cmp");
看起来像一份工作usort
usort($array, function ($a, $b) {
if ($a['name'] == $b['name']) {
return 0;
}
return $a['name'] < $b['name'] ? -1 : 1;
});