php各种排序

来源:互联网 发布:七招应对网络泄密隐患 编辑:程序博客网 时间:2024/04/29 20:02
<?php
/**
* file(test.php)
*  进行各种排序demo
* @author xiaobai
* @version 1
 */

$people = array('acc'=>"Peter", "Joe", "Glenn", "Cleveland");
echo "The key from the current position is: " . key($people);



$arr =array(1,-3,7,5);

/*
*    bubble
*    冒泡排序
*    由小到大:第一个大于第二个则第一个和第二个互换,否则第二个
*              和第3个比较,从而得到最大值
*    @param $arr  进行排序数组
*    @return $arr 返回数组
*return $arr
*/
function bubble($arr){
    $len=count($arr);
    for($i=1;$i<$len;$i++){
        for($j=0;$j<$len-$i;$j++){
            if($arr[$j]>$arr[$j+1]){
                $temp = $arr[$j];
                $arr[$j]=$arr[$j+1];
                $arr[$j+1]=$temp;
            }else{
                continue;
            }
        }
    }
    var_dump($arr);
}
//1到n选出最小到1,2到n选出最小到2,n-1到n选出最小到n-1
function sorta($arr){
    $len=count($arr);
    
    
    //选取索引值
    $index=0;
    //循环n-1次
    for($i=0;$i<$len-1;$i++){
        //初始值是最小,
        $min=$arr[$i];
        //记录最小值下标
        $index=$i;
        for($j=$i+1;$j<$len;$j++){
            if($arr[$j]>=$min){
                
            }else{
                $min = $arr[$j];
                $index=$j;
            }
        }
        
        $arr[$index]=$arr[$i];
        $arr[$i]=$min;
        $min=$arr[$index];
            
        
    //    var_dump($arr);
        
    }
    var_dump($arr);
}
//array(1,-3,7,5);  -3 1 7 5
/**
*    insert
*    charu
*    @param $i 外层循环
*    @param $j
*
*
*/
function insert($arr){
    $arr = array(1,-3,7,5);
    
    $len=count($arr);
    
    //$art[]=$arr[0];
  
    for($i=1;$i<$len;$i++){
        $insertvalue=$arr[$i];
        $inserIndex=$i-1;
        $lent=count($art);
        
        while($insertvalue<$arr[$inserIndex] && $insertIndex>=0){
            $arr[$inserIndex+1]=$arr[$inserIndex];
            $inserIndex--;
        }
        $arr[$inserIndex+1]=$insertvalue
    }
    var_dump($art);
    
}


insert($arr);
bubble($arr);
sorta($arr);
exit();
 $soapclient = new soapClient("http://webservice.webxml.com.cn/webServices/MobileCodeWS.asmx?WSDL");
 var_dump($soapclient->__getFunctions());
 $arr = array(
  ''
 );

 var_dump($soapclient->getMobileCodeInfo('13717711272'));




自定义排序


<?phpfunction cmp($a, $b) {    $order = array(1,3,2,5,4);    $keya = array_search($a['STATUS'], $order);    $keyb = array_search($b['STATUS'], $order);    if($keya === false)             return -1;    if($keyb === false)            return 1;    if($keya === $keyb)             return 0;    return ($keya > $keyb) ? 1 : -1;}$array =     array(        array('ITEMCODE'=>73691650,'STATUS'=>'1'),        array('ITEMCODE'=>73691651,'STATUS'=>'2'),        array('ITEMCODE'=>73691652,'STATUS'=>'3'),        array('ITEMCODE'=>73691653,'STATUS'=>'3'),        array('ITEMCODE'=>73691654,'STATUS'=>'4'),        array('ITEMCODE'=>73691655,'STATUS'=>'2'),        array('ITEMCODE'=>73691656,'STATUS'=>'5'),        array('ITEMCODE'=>73691657,'STATUS'=>'2'),);usort($array, 'cmp');var_dump($array);// output:

0 0
原创粉丝点击