问题是这样的 我需要一函数 带5个参数分别都是数组 需要对5个数组提取做出判断 并且本数组数量小于3自动依照排序提取下一个数组元素 请看函数说明
比如:
<?php 
 /**
      +----------------------------------------------------------
      * 函数 getarray
      * 提取顺序 $a->$b->$c->$d->$e
      * 数组元素是随机的
      * 如果数组a元素不够大于1小于等于3时候 自动从$b提取一个填充到$a中这个时候$b有可能是空的话就在从$c中提取元素填充到$a中同理$c,$d,$e
      * 
      * 修改记录:
      +----------------------------------------------------------
      * @access 
      +----------------------------------------------------------
      * @param $a 数组1 $a = array(1,2);
      * @param $b 数组2 $b = array(1,2,3,4,5);
      * @param $c 数组2 $c = array(1,2,3,8);
      * @param $d 数组2 $d = array(1,2,3,5,7);
      * @param $e 数组2 $e = array(1,2);
      * @param $f 数组2 $f = array(1,2,5,8);
      +----------------------------------------------------------
      * @return 
      +----------------------------------------------------------
      */
function getarray($a=array(),$b=array(),$c=array(),$d=array(),$e=array())
{

echo '如何实现???';
}
?>

解决方案 »

  1.   

    如果数组a元素不够大于1小于等于3
    是什么意思 就是说a数组里面的元素在1到3之间 就从b中提一个或两个到a中.
      

  2.   

    我理解是这样
    function getarray($a=array(),$b=array(),$c=array(),$d=array(),$e=array())
    {
      $ar = func_get_args();
      for($i=0,$j=1; $i<count($ar)-1 && $j<count($ar); $i++,$j++) {
        while(0 < count($ar[$i]) && count($ar[$i]) <= 3) {
          while(count($ar[$j])==0 && $j<count($ar)) $j++;
          if(count($ar[$j]) == 0) break;
          $ar[$i][] = array_shift($ar[$j]);
        }
      }
      print_r($ar);
    }getarray(array(1,2), array(1,2,3,4,5), array(1,2,3,8), array(1,2,3,5,7), array(1,2), array(1,2,5,8));
    Array
    (
        [0] => Array
            (
                [0] => 1
                [1] => 2
                [2] => 1
                [3] => 2
            )    [1] => Array
            (
                [0] => 3
                [1] => 4
                [2] => 5
                [3] => 1
            )    [2] => Array
            (
                [0] => 2
                [1] => 3
                [2] => 8
                [3] => 1
            )    [3] => Array
            (
                [0] => 2
                [1] => 3
                [2] => 5
                [3] => 7
            )    [4] => Array
            (
                [0] => 1
                [1] => 2
                [2] => 1
                [3] => 2
            )    [5] => Array
            (
                [0] => 5
                [1] => 8
            ))getarray(array(1,2), array(), array(1,2,3,8), array(1,2,3,5,7), array(1,2));
    Array
    (
        [0] => Array
            (
                [0] => 1
                [1] => 2
                [2] => 1
                [3] => 2
            )    [1] => Array
            (
            )    [2] => Array
            (
                [0] => 3
                [1] => 8
                [2] => 1
                [3] => 2
            )    [3] => Array
            (
                [0] => 1
                [1] => 2
                [2] => 3
                [3] => 5
                [4] => 7
            )    [4] => Array
            (
            ))
      

  3.   

    function getarray($a=array(),$b=array(),$c=array(),$d=array(),$e=array())
    {
      $ar = func_get_args();
      for($i=0,$j=1; $i<count($ar)-1 && $j<count($ar); $i++,$j++) {
      while(0 < count($ar[$i]) && count($ar[$i]) <= 3) {
      while(count($ar[$j])==0 && $j<count($ar)) $j++;
      if(count($ar[$j]) == 0) break;
      $ar[$i][] = array_shift($ar[$j]);
      }
      }
      $ar = array_merge($ar);
      print_r($ar);
    }
    搞定 func_get_args以前没看到过 有这个函数就好办多了