function strToLeft($num,$arr){
$i = $arr[$num];
unset($arr[$num]);
array_push($arr,$i);
return $arr;
}
function combine_increase($arr, $start, $result, $count, $NUM, $arr_len,$newarr=array())
{
$i = 0;
for ($i = $start; $i < $arr_len + 1 - $count; $i++)
{
$result[$count - 1] = $i;
if ($count - 1 == 0)
{
$tmp=array();
for ($j = $NUM - 1; $j >= 0; $j--) {
array_push($tmp, $arr[$result[$j]]);
}
array_push($newarr, strToLeft(rand(0,$NUM-1),$tmp));
}
else {
return combine_increase($arr, $i + 1, $result, $count - 1, $NUM, $arr_len); }
}
return $newarr;
}
$arr = array('a1','b2','c3','d4','e5','x1','y1','z1');
$num = 3;
$result[$num]=array();
$newarr=array();
echo "('a1','b2','c3','d4','e5','x1','y1','z1')";//,'e5','x1'
echo "<br/>";
//combine_increase($arr, 0, $result, $num, $num, count($arr));
echo "<pre>";
var_dump(combine_increase($arr, 0, $result, $num, $num, count($arr)));
echo "</pre>";
echo "<br/>";
這是一個把一維數(shù)據(jù)生成按三個元素不同組合的n個一維數(shù)組,正常如果不是返回只是把array_push($newarr, strToLeft(rand(0,$NUM-1),$tmp));句變成
var_dump(strToLeft(rand(0,$NUM-1),$tmp));
echo("<br/>");
則能列出幾十條結(jié)果,但通過返回數(shù)組就只返回6個,好像是前6個,不知道如何能全部返回取到,求解?。。。?/code>
業(yè)精于勤,荒于嬉;行成于思,毀于隨。
問題看懂了 但是代碼沒看懂 參數(shù)又亂又多
如果只是實現(xiàn)返回不同值的數(shù)組 沒必要這么麻煩吧
而且直接輸出strToLeft(rand(0,$NUM-1),$tmp)
結(jié)果也是六個