天天看點

二維數組的自定義組合排序

 <?php

$arr=array(array('A','b',1),//這是一個亂序的二維數組樣本(3列8行)

array('B','a',2),

array('A','c',3),

array('A','a',3),

array('B','c',0),

array('A','d',1),

array('B','a',2),

array('A','d',0));

function compare($x,$y)

/******************************************************************

自定義二維數組組合排序比較方式,自定義的組合排序方式為(列0+列2+列1),

如果用sort()函數排序,其預設是按所有列依順序組合來排序。

******************************************************************/

{

if($x[0]==$y[0])

{

if($x[2]==$y[2])

{

if($x[1]==$y[1])

return 0;

else if($x[1]<$y[1])

return -1;

else

return 1;

}

else if($x[2]<$y[2])

return -1;

else

return 1;

}

else if($x[0]<$y[0])

return -1; //可以任意負數

else

return 1; //可以任意正數

}

usort($arr,'compare');//執行自定義排序函數

echo "<pre />";

print_r($arr);

?>