可能重复:
How do I sort a multidimensional array in phpPHP排序多维数组的最佳方法?
可以说我有以下多维数组:
$fruits[] = array("name"=>"orange", "price"=>3, "code"=>"A45");
$fruits[] = array("name"=>"apple", "price"=>2, "code"=>"W71");
$fruits[] = array("name"=>"grape", "price"=>4, "code"=>"G11");
后来想通过其price
这个$fruits[]
数组排序。
所以应该是:
$fruits[] = array("name"=>"apple", "price"=>2, "code"=>"W71");
$fruits[] = array("name"=>"orange", "price"=>3, "code"=>"A45");
$fruits[] = array("name"=>"grape", "price"=>4, "code"=>"G11");
然后我上网各地的网络了很多,终于让我找到下面一个从php manual
(我调整上面我的数组变量名):
// Obtain a list of columns
foreach ($fruits as $key => $value) {
$name[$key] = $value['name'];
$price[$key] = $value['price'];
$code[$key] = $value['code'];
}
// Sort the data with volume descending, edition ascending
// Add $data as the last parameter, to sort by the common key
array_multisort($price, SORT_ASC, $fruits);
OK , 得到它了!然后$fruits[]
数组正确排序price
值。
好了,下面是我的一些顾虑:
- 至于我以前学过,我们不应该添加/使用任何附加/定制代码使用排序Machinism。 (相反,我相信我们应该使用纯内置方法。)
- 在这里,我怀疑它的性能,因为它内部有预定制的
foreach
循环,这可能极大地降低了速度,同时我们拥有真正庞大的阵列。 (像我现在有)
所以现在我要问的是:
- 是否
PHP
有任何纯粹的方法来实现这个东西? - [或]我们不能纠正这个多维数组排序问题只使用 /从一些PHP纯内置,数组排序方法(例如:sort(),usort(), asort(),array_multisort()等等。)?
哇,完美的作品! –