[php] php组合算法
<?phpfunction 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) === true ? $array : array();
} else {
$result = array();
$a = $array;
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);
}
}
}
return $result;
}
}
echo '<pre>';
print_r(combination(array("A1", "A2"), array("B1", "B2"), "1", array("C1", "C2", "C3")));
?>
页:
[1]