[英]Create a recursive function with an array
我有一個 function 但無法成功使其遞歸。 這是我的 function 沒有遞歸:
function resolution_recursion($tab1, $tab2){
$solution = [];
foreach($tab2 as $nb2){
foreach($tab1 as $nb1){
if(($nb2 + $nb1)%2 != 1){
$solution[] = $nb2 + $nb1;
}
}
}
return $solution;
}
我想讓它遞歸使它像這樣工作:
$nb_ajout = [2];
$next = [[1,2],[3,4],[5,6],[7,8]];
resolution_recursion(
resolution_recursion(
resolution_recursion(
resolution_recursion($nb_ajout, $next[0]),
$next[1]),
$next[2]),
$next[3]);
如果你能幫助我,我找不到解決方案。
像這樣的東西會做的伎倆...
function resolution_recursion($tab1, $tab2, $solution = [])
{
if (empty($tab2)) {
return $solution;
}
$set = array_shift($tab2);
foreach($set as $nb2){
foreach($tab1 as $nb1){
if(($nb2 + $nb1)%2 != 1){
$solution[] = $nb2 + $nb1;
}
}
}
if (!empty($tab2)) {
return resolution_recursion($tab1, $tab2, $solution);
}
return $solution;
}
你可以在這里找到一個演示(output 但是對我來說絕對沒有任何意義,所以希望它對你有意義,哈哈)
我想我找到了一些東西,而不是使用遞歸:
function resolution_recursion($tab1, $tab2){
$solution = [];
$solution[-1] = $tab1;
foreach($tab2 as $key => $tab){
foreach($tab as $nb2){
foreach($solution[$key-1] as $nb1){
if(($nb2 + $nb1)%2 != 1){
$solution[$key][] = $nb2 + $nb1;
}
}
}
}
return $solution;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.