function paixu($a){
//判断是否有进行排序
$is=true;
$num=count($a)-1;
//使用数组接受
for($i=0;$i<$num;$i++){
//从小到大排序
if($a[$i]>$a[$i+1]){
//进行交换值
$temp=$a[$i];
$a[$i]=$a[$i+1];
$a[$i+1]=$temp;
$is=false;
}
}
if($is){//一旦没有排序则直接返回
return;
}else{
paixu($a);
}
}
$a=array(5,12,42,523,32,43,56,7,87,24);
var_dump(paixu($a));

解决方案 »

  1.   

    这么改就会好了
    function paixu(&$a){//&引用,如果没有,$a传入函数,是复制的副本,对函数外面的$a不会有影响的
    ……
    ……$a=array(5,12,42,523,32,43,56,7,87,24);
    paixu($a);
    var_dump($a);
      

  2.   

    <?php
    $a=array(5,12,42,523,32,43,56,7,87,24);
    var_dump(paixu($a));
    function paixu(&$a){
        //判断是否有进行排序
        $is=true;
        $num=count($a)-1;
        //使用数组接受
        for($i=0;$i<$num;$i++){
            //从小到大排序
            if($a[$i]>$a[$i+1]){
                //进行交换值
                $temp=$a[$i];
                $a[$i]=$a[$i+1];
                $a[$i+1]=$temp;
                $is=false;
            }
        }
        if($is){//一旦没有排序则直接返回
           var_dump($a);
        }else{
            paixu($a);
        }
    }
      

  3.   

    php中没有指针的概念,如果不返回数组的话,需要在原数组的基础上操作,因此,函数的参数应该是引用传值。paixu(&$a)