public static function combine() {
$data = array();
$args = func_get_args();
foreach ($args as $value) {
if(is_array($value)) {
$data[] = $value;
}else{
$data[] = array($value);
}
}
$total = count($data);
if($total === 0 ) {
return array();
}elseif($total === 1) {
return is_array(current($data)) ? current($data) : array();
}else{
$result = array();
$first = current($data);
array_shift($data);
if(is_array($data) === false){
return $result;
}
foreach ($first as $arg) {
$second = call_user_func_array('BiUtil::combine', $data);
foreach ($second as $a) {
if(is_array($a) === true) {
$result[] = array_merge(array($arg) , $a);
}else{
$result[] = array($arg ,$a);
}
}
}
return $result;
}
}
function combination(){
$array = array();
$arguments = func_get_args();
foreach($arguments as $argument){
if(is_array($argument) === true){
$array[] = $argument;
}else{
$array[] = array($argument);
}
}
$size = count($array);
if($size === 0){
return array();
}else if($size === 1){
return is_array($array[0]) === true ? $array[0] : array();
}else{
$result = array();
$a = $array[0];
array_shift($array);
if(is_array($array) === false){
return $result;
}
foreach($a as $val){
$b = call_user_func_array("combination", $array);
foreach($b as $c){
if(is_array($c) === true){
$result[] = array_merge(array($val), $c);
}else{
$result[] = array($val, $c);
var_dump($result);
exit();
}
}
}
return $result;
}
}