美好的一天。
我们有阵列:
array(3) {
[1]=>
array(9) {
[1]=>
string(12) "aaandroid.ru"
[2]=>
string(1) "0"
[3]=>
string(1) "0"
[4]=>
string(1) "0"
[5]=>
string(1) "0"
[6]=>
string(1) "0"
[7]=>
string(5) "Test2"
[8]=>
string(10) "2012-03-27"
[9]=>
string(10) "2013-04-29"
}
[2]=>
array(9) {
[1]=>
string(7) "aaga.ru"
[2]=>
string(1) "0"
[3]=>
string(1) "0"
[4]=>
string(1) "0"
[5]=>
string(1) "0"
[6]=>
string(1) "0"
[7]=>
string(8) "Test1"
[8]=>
string(10) "2008-02-21"
[9]=>
string(10) "2013-04-29"
}
[3]=>
array(9) {
[1]=>
string(10) "aatrakc.ru"
[2]=>
string(1) "0"
[3]=>
string(1) "0"
[4]=>
string(1) "0"
[5]=>
string(1) "0"
[6]=>
string(1) "0"
[7]=>
string(8) "Test3"
[8]=>
string(10) "2012-03-27"
[9]=>
string(10) "2013-04-29"
}
请告诉我如何使用密钥对数组中的数据进行排序?
例如,我想获得数组在元素7上进行数据排序的数组,即。结果我想得到数组:
array(3) {
[1]=>
array(9) {
[1]=>
string(7) "aaga.ru"
[2]=>
string(1) "0"
[3]=>
string(1) "0"
[4]=>
string(1) "0"
[5]=>
string(1) "0"
[6]=>
string(1) "0"
[7]=>
string(8) "Test1"
[8]=>
string(10) "2008-02-21"
[9]=>
string(10) "2013-04-29"
}
[1]=>
string(12) "aaandroid.ru"
[2]=>
string(1) "0"
[3]=>
string(1) "0"
[4]=>
string(1) "0"
[5]=>
string(1) "0"
[6]=>
string(1) "0"
[7]=>
string(5) "Test2"
[8]=>
string(10) "2012-03-27"
[9]=>
string(10) "2013-04-29"
}
[3]=>
array(9) {
[1]=>
string(10) "aatrakc.ru"
[2]=>
string(1) "0"
[3]=>
string(1) "0"
[4]=>
string(1) "0"
[5]=>
string(1) "0"
[6]=>
string(1) "0"
[7]=>
string(8) "Test3"
[8]=>
string(10) "2012-03-27"
[9]=>
string(10) "2013-04-29"
}
请告诉我它真的是如何制作的?
答案 0 :(得分:2)
检查PHP usort
函数:http://www.php.net/manual/en/function.usort.php。
它根据您可以创建的回调提供(就地)排序。
示例:
usort($myArray, function ($a, $b) {
return strcmp($a[7], $b[7]);
});
答案 1 :(得分:0)
继续Hidde的回答,如果你想要颠倒你仍然使用usort()
的排序顺序,但是你要调整strcmp()
调用中参数的顺序。这将反转两个数组usort()
中的哪一个看作较大的值。
usort($myArray, function ($a, $b) {
return strcmp($b[7], $a[7]);
});
这使用匿名函数,因此它只适用于Php 5.3或更高版本。如果你必须在5.2上定义一个函数来用作回调。
function mySortFunction($a, $b) {
return strcmp($b[7], $a[7]);
}
usort($myArray, 'mySortFunction');
请参阅: