二维数组排序
程序员文章站
2024-01-03 16:57:58
...
<?php function arr_sort($data){ $len = count($data); for($i=0;$i<$len;$i++){ $ilen = count($data[$i]); for($j=0;$j < $ilen;$j++){ $m = $data[$i][$j]; $mpos1 = $i; $mpos2 = $j; if( !isset($data[$i][$j+1]) ){ $ii = $i+1; $jj = 0; }else{ $ii = $i; $jj = $j+1; } for($ii; $ii<$len; $ii++){ $iilen = count($data[$ii]); for($jj; $jj<$iilen; $jj++){ if($m > $data[$ii][$jj]){ $m = $data[$ii][$jj]; $mpos1 = $ii; $mpos2 = $jj; } if($jj == ($iilen-1)){ $jj = 0; break; } } } if($i!=$mpos1 || $j!=$mpos2){ $data[$i][$j] = ($data[$i][$j] + $data[$mpos1][$mpos2]); $data[$mpos1][$mpos2] = ($data[$i][$j] - $data[$mpos1][$mpos2]); $data[$i][$j] = ($data[$i][$j] - $data[$mpos1][$mpos2]); } if($j == ($ilen-1)){ $j = 0; break; } } } return $data; } $data[0] = array(5,8,11,55,77); $data[1] = array(1,2,3,9); print_r(arr_sort($data));