一数组 $target = array(23,43,87,12,34,46,90,42,9,3);要求对其进行排序,最终的顺序是 第一个是最大的,第二个是最小的,第三个是剩下的最大的,第四个是剩下的最小的,依次类推。

解决方案 »

  1.   

    <?$target = array(23,43,87,12,34,46,90,42,9,3);
    sort($target);
    for ($i=0;$i<5;$i++)
    {
    $big=9-$i;
    echo $target[$big] . "<br/>";
    echo $target[$i] . "<br/>";
    }
    ?>
      

  2.   

    先将它升序排列,就是从小到大排列。那么他们的主键的数字索引分别是0,1,2,3,····7,8,9一个十个。主键数字越大的对应的数值也越大。所以现在的主键目标位置是:9,0,8,1,7,2,6,3,5,4.
    因为9+0=8+1=7+2等等所以按两组为一次输出。$big+$i=9.
    下面的就不说了。我也是一个小白,这段时间学了点。错的大家再交流。一起进步
      

  3.   

    修改一下啊。<?$target = array(23,43,87,12,34,46,90,42,9,3);
    sort($target);
    $sum=count($target)-1;//键位数
    echo $sum;
    for ($i=0;$i<5;$i++)
    {
    $big=$sum-$i;
    echo $target[$big] . "<br/>";
    echo $target[$i] . "<br/>";
    }
    ?>
      

  4.   

    <?php
    $target = array(23,43,87,12,34,46,90,42,9,3);
    rsort($target);$rest = array();
    for($i=0,$j = count($target)-1;$i<$j;$i++,$j--){
     $rest[] = $target[$i];
     if($i!=$j){
       $rest[] = $target[$j];
     } 
    }var_export($rest);
      

  5.   

    先用函数将其排列 从大到小
    然后把最大的和 最小的取出来 
    假如函数排列后就是   a,b,c,d,e,f然后每次取出第一个和最后一个数加入新的数组
    取到没有数位置 那就是你要的函数了
      

  6.   

    $ar = array(23,43,87,12,34,46,90,42,9,3);
    sort($ar);while($ar) {
      $r[] = array_pop($ar);
      if(! $ar) break;
      $r[] = array_shift($ar);
    }print_r($r);Array
    (
        [0] => 90
        [1] => 3
        [2] => 87
        [3] => 9
        [4] => 46
        [5] => 12
        [6] => 43
        [7] => 23
        [8] => 42
        [9] => 34
    )
      

  7.   


    修正一下。上面应该是for($i=0,$j = count($target)-1;$i<=$j;$i++,$j--)
      

  8.   

    #8 对php各种内置函数已经达到精通的境界了。