首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

用户自定义排序数组有关问题

2012-04-01 
用户自定义排序数组问题PHP code?PHP $number array(array(tir,tire,100),array(Oil,oil,50

用户自定义排序数组问题

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') ); 

热点排行