日期:2014-05-17 浏览次数:20421 次
<?PHP $number = array(array('tir','tire','100'), array('Oil','oil','50'), array('spk','spark','10')); function compare($x,$y){ if($x[1]==$y[1]){ return 0;} else if($x[1]<$y[1]){ return -1; } else{ return 1;} } usort($number,'compare'); print_r($number); ?>
$number = array( array('tir1','tire2','100'), array('Oil1','oil2','50'), array('spk1','spark2','10') ); function compare($x,$y){ if($x[1]==$y[1]){ return 0; } else if($x[1]<$y[1]){ //可以输出来看一下 //var_dump($x[1]); //var_dump($y[1]); //echo 22; return -1; }else{ return 1; } } //echo '<pre>'; usort($number,'compare'); print_r($number); // 函数compare 是比较函数 , 也就是把$number数组值代入compare这个函数中进行比较,根据比较的结果,重新排序这个$number数组的内部值 //首先比较的是$x[1]==$y[1]//也就是oil2 跟 tire2 进行比较 ,显然他们的值不一样,于是进行$x[1]<$y[1] 比较,明显oil2 与tire2 //oil的首字线在tire的首字母前,显然返回-1,也就是要把array('Oil1','oil2','50')排在array('tir1','tire2','100')前,接着是spark2与tire2进行比较,同理,结果返回-1,也就是要把 array('spk1','spark2','10') 排在array('tir1','tire2','100')前,最终$number中的排序为 $number = array(array('Oil1','oil2','50') ,array('spk1','spark2','10'),array('tir1','tire2','100') );