- PHP code
<?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); ?>
那个function函数是什么意思 看不懂 哪些返回值是怎么回事 原理究竟是什么 请高手详细讲解一下 小弟刚学PHP
------解决方案--------------------
我的理解,lz可以参考下我下面的例子,希望对你有所帮助
- PHP code
$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') );