我有三个这样的阵列:
$a1 = array('55','something1','something2','something3' );
$a2 = array('77','something14','something25','something36' );
$a4 = array('66.6','something15','something25','something34' );
这三个数组如下:
$a = array($a1,$a2,$a4 );
我知道通过使用sort()
我可以对数值进行排序,但这里我要对数组进行排序,这样排序只能通过数组$ a1,$ a2和$ a4的第一个数字元素进行排序,即输出应该是第一个$ a1因为55比66.6和77然后$ a4因为66.6小于77而$ a2.I不想要数组中的元素值$ a1,$ a2,$ a4只更改数组$ a应该以数字方式重新排列。
答案 0 :(得分:1)
使用usort
usort - 使用用户定义的比较按值对数组进行排序 功能
$a1 = array('55','something1','something2','something3' );
$a2 = array('77','something14','something25','something36' );
$a4 = array('66.6','something15','something25','something34' );
$array = [$a1, $a2, $a4];
usort($array, function($a, $b) {
if ($a[0] > $b[0]) {
return 1;
} else {
return -1;
}
});
print_r($array);