-1

我有一个这样创建的数组:

$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 数组进行排序。

我该怎么做呢?谢谢!

4

2 回答 2

8

添加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");
于 2013-03-22T19:12:40.907 回答
0

看起来像一份工作usort

usort($array, function ($a, $b) {
   if ($a['name'] == $b['name']) {
       return 0;
   }
   return $a['name'] < $b['name'] ? -1 : 1;
});
于 2013-03-22T19:13:31.020 回答