此代码不能正常运行,但它表明我想做的事:PHP通过索引(非关联)排序二维数组
function sort_2d_by_index($a,$i) {
function cmp($x, $y) {
// Nested function, can't find $i
// (global $i defeats the purpose of passing an arg)
if ($x[$i] == $y[$i]) { return 0; }
return ($x[$i] < $y[$i]) ? -1 : 1;
}
usort($a,"cmp");
return $a;
}
,必须有一个更好的方法来做到这一点。我一直在检查ksort()
,multisort()
,以及各种各样的种类,直到我有点厌倦,试图将其全部整理出来。
的情况是这样的:我有一个2-d阵列...
array(
array(3,5,7),
array(2,6,8),
array(1,4,9)
);
...我想列索引进行排序。说,列[1]
,将使这样的结果:
array(
array(1,4,9),
array(3,5,7),
array(2,6,8)
);
是否有人有一个链接(我敢肯定,这已经问过),或可能会有人说:“你需要foosort
,肯定”。非常感谢。
+1 for`use` aha这就是我正在寻找的东西,我想。 – Ben 2010-11-24 01:22:22
感谢关闭链接。原来`array_multisort`解决方案是The One,直到PHP 5.3更广泛。我看了一下文档,但没有找到像这个一样好的解释。太糟糕,我不能接受两次,这个答案是伟大的:) – Ben 2010-11-24 01:42:00