Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal,
Estou fazendo um sistema multinivel e estou com um problema.
Não vou falar do projeto inteiro pois é muito grande, vamos direto ao ponto problemático.
Em certo momento do cógio eu chamo a função:
percorre_niveis($array_associados_primeiro_segundo_infinito['id']);
Como exemplo, esta chamada está passando para a função o array:
Array ( [0] => 11 [1] => 12 [2] => 135 [3] => 136 )
E então chegamos à função:
//Percorre toda a rede em busca dos primeiros e segundos associados ligados diretamente
function percorre_niveis($parametro) {
$array_percorre_niveis['id'] = $parametro;
foreach($parametro as $percorre_id_do_associado) {
$consulta_percorre_niveis = mysql_query("SELECT * FROM multi_associado WHERE ap = $percorre_id_do_associado ORDER BY id ASC LIMIT 0,2");
if(mysql_num_rows($consulta_percorre_niveis) > 0) {
while($res_percorre_niveis = mysql_fetch_array($consulta_percorre_niveis)) {
$array_percorre_niveis['id'][] = $res_percorre_niveis['id'];
$parametro1[] = $res_percorre_niveis['id'];
}
}
}
return($array_percorre_niveis['id']);
}Array ( [0] => 11 [1] => 12 [2] => 135 [3] => 136 [4] => 23 [5] => 151 [6] => 153 [7] => 140 [8] => 141 [9] => 166 )
O problema
Eu preciso fazer esta mesma função ser recursiva, pois eu preciso fazer dezenas e dezenas de outras consultas a partir de uma resposta gerada pela função.
Resumindo, no momento em que "$parametro1[] = $res_percorre_niveis['id'];" é preenchido, eu precisava chamar a função novamente para refazer as devidas consultas com esse array que acaba de ser preenchido.
Se eu chamar a função dentro da função, o array $array_percorre_niveis['id'] é iniciado novamente, perdendo o conteúdo preenchido anteriormente.
Já tentei array_push, array_merge, array_merge_recursive, mas nada tem dado resultado.
Alguem poderia me dizer se existe possibilidade desta maneira que estou fazendo funcionar?
Obrigado a todos!
Veja se isso ajuda
Olá Imaggens,
Na verdade não é o mesmo problema.
O meu problema é descobrir quem são os primeiros e segundos associados a partir do terceiro associado ligado diretamente a mim.
Para isso tentei criar uma função, porém ao entrar na função várias vezes, o array sempre é iniciado novamente.
Eu precisava de algo que incrementasse no array já existente, e não iniciasse denovo.
Pessoal,
Consegui pensar em uma maneira e deu certo.
Obrigado!
Veja se isso ajuda