问题是这样的 我需要一函数 带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 '如何实现???';
}
?>
比如:
<?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 '如何实现???';
}
?>
是什么意思 就是说a数组里面的元素在1到3之间 就从b中提一个或两个到a中.
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
(
))
{
$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以前没看到过 有这个函数就好办多了