Php 数组排序比数组\多排序快?

Php 数组排序比数组\多排序快?,php,Php,我试图根据一列订单对一个大数组进行排序。数组的构建方式不允许我在查询中进行太多排序,但我想知道是否有一种方法比PHP更快 我的代码是: foreach ($returnArr as $key => $row) { $tmp[$key] = $row['orders']; } array_multisort($tmp, SORT_DESC, $returnArr); 我还想就如何构建单个查询以及如何将一些where条件仅应用于单个列提出建议。如果这是可能的,那么我就可以用MySQ

我试图根据一列订单对一个大数组进行排序。数组的构建方式不允许我在查询中进行太多排序,但我想知道是否有一种方法比PHP更快

我的代码是:

foreach ($returnArr as $key => $row) {
    $tmp[$key] = $row['orders'];
}

array_multisort($tmp, SORT_DESC, $returnArr);

我还想就如何构建单个查询以及如何将一些where条件仅应用于单个列提出建议。如果这是可能的,那么我就可以用MySQL而不是PHP来实现

没有你的质疑很难回答,但我怀疑multisort是否是你想要的。它本质上也会对列名进行排序,这在查询本身中很容易做到。您还可以让数据库为您排序值,这样您的查询看起来像:

select
  Col_AAA, Col_BBB, Col_HHH, Col_ZZZ
from
  YourTable
order by
  Col_AAA, Col_BBB, Col_HHH, Col_ZZZ

这将返回排序后的值以及按指定顺序排列的列。

如果没有您的查询,很难回答,但我怀疑multisort是否是您想要的。它本质上也会对列名进行排序,这在查询本身中很容易做到。您还可以让数据库为您排序值,这样您的查询看起来像:

select
  Col_AAA, Col_BBB, Col_HHH, Col_ZZZ
from
  YourTable
order by
  Col_AAA, Col_BBB, Col_HHH, Col_ZZZ
这将返回已排序的值以及按指定顺序排列的列。

如果array\u multisort是答案,则问题是错误的。我还没有看到需要数组_multisort的情况,PHP数组是如此强大的数据结构,以至于实际上不需要进行多排序

为什么要从$returnArr获取所有订单,然后将此数组与$tmp一起排序?您应该简单地对$tmp进行排序,同时保留其数组键,如果您想迭代这个$tmp数组,foreach中的键与指向$returnArr的键相同-您可以访问$returnArr中的匹配数据集,而无需对其进行排序。$tmp和$returnArr中的相同键将始终属于同一数据集

另一方面,你没有说明你想做什么。

如果array\u multisort是答案,那么问题就错了。我还没有看到需要数组_multisort的情况,PHP数组是如此强大的数据结构,以至于实际上不需要进行多排序

为什么要从$returnArr获取所有订单,然后将此数组与$tmp一起排序?您应该简单地对$tmp进行排序,同时保留其数组键,如果您想迭代这个$tmp数组,foreach中的键与指向$returnArr的键相同-您可以访问$returnArr中的匹配数据集,而无需对其进行排序。$tmp和$returnArr中的相同键将始终属于同一数据集


另一方面,您没有说明您想做什么。

**请参见以下问题:***请参见以下问题:**