我有以下数组:
Array
(
[0] => Array
(
[0] => 2
[1] => 1
[2] => Text
[3] => 0
)
[1] => Array
(
[0] => 3
[1] => 1
[2] => Another Text
[3] => 0
)
}
我需要通过内部数组的索引号2的值来命令outter数组,因此它将是:
Array
(
[0] => Array
(
[0] => 2
[1] => 1
[2] => Another Text
[3] => 0
)
[1] => Array
(
[0] => 3
[1] => 1
[2] => Text
[3] => 0
)
}
我找到了像sort()
和array_multisort()
这样的方法,但似乎它们不适合这种情况。原始数组也有很多项,所以应该是一个快速的算法。
php是否有针对此案例的任何实现方法?
答案 0 :(得分:0)
您可以使用usort函数,例如:
function sortBySecondIndex($a,$b) {
return strnatcmp($a[2],$b[2]);
}
usort($array,"sortBySecondIndex");
答案 1 :(得分:0)
好吧,我不能说这会有多快,但是你做不了类似的事情:
$tmpArray = array();
foreach($multiDimArray as $index=>$array)
{
$tmpArray[$array[2]] = $index;
}
ksort($tmpArray);
$finalArray = array();
foreach($tmpArray as $sortedIndex)
{
$finalArray[] = $multiDimArray[$sortedIndex];
}
虽然,我确信必须有一种更优雅的方式来做到这一点。