Как увеличить счетчик в рекурсии на единицу?
function r($b,$a){
$new_mas = array();
$i = 0;
foreach($b as $uniq){
var_dump($i);
$k = array_search($uniq,$a);
if($k!==false){
$new_mas[]=$uniq;
unset($a[$k]);
}else{
unset($b[$i]);
}
if($i==(sizeof($b)-1)){
if(sizeof($a)){
$new_mas=array_merge($new_mas,r($b,$a));
}
}
$i++;
}
return $new_mas;
}
$dddd = r($b,$a);
Функция выводит
int(0)
int(1)
int(0)
int(1)
int(0)
int(1)
Мне нужно, чтобы счетчик постоянно увеличивался на 1, а не обнулялся в каком-то моменте. Подскажите, что неправильно ?
Ответы (1 шт):
Автор решения: Pavel Seletkov
→ Ссылка
$i = 0;
function r($b,$a){
global $i;
$new_mas = array();
foreach($b as $uniq){
var_dump($i);
$k = array_search($uniq,$a);
if($k!==false){
$new_mas[]=$uniq;
unset($a[$k]);
}else{
unset($b[$i]);
}
if($i==(sizeof($b)-1)){
if(sizeof($a)){
$new_mas=array_merge($new_mas,r($b,$a));
}
}
$i++;
}
return $new_mas;
}
$dddd = r($b,$a);
максимально топорный вариант.