This program makes the professional aptitude test based on the logic of fuzzy relations. I have to transform these loops into a recursive function, I researched and even understood how a recursive function should be implemented, but I could not figure out a way to use those loops in one. The recursive function invokes itself as a loop of repetition until a stop condition is satisfied. How could I make these loops a recursive function?
$aptidoes = array (
array ("aptidao_id" => "3","cod" => "ap1", "aptidao" => "Nível de Raciocínio Lógico?"),
array ("aptidao_id" => "4","cod" => "ap2", "aptidao" => "Gosta de Cálculos?"),
array ("aptidao_id" => "5","cod" => "ap3", "aptidao" => "Nível de Curiosidade?")
);
$casos = array (
array ("caso_id" => "35","nome" => "KELLY", "ap1" => "0.1", "ap2" => "0.1", "ap3" => "0.1")
);
$profissoes = array (
array ("profissao_id" => "1","profissao" => "Cientista da Computação", "ap1" => "1", "ap2" => "0.9", "ap3" => "0.9"),
array ("profissao_id" => "2","profissao" => "Psicologo", "ap1" => "0.5", "ap2" => "0", "ap3" => "0.6"),
array ("profissao_id" => "3","profissao" => "Professor de Humanas", "ap1" => "0.4", "ap2" => "0", "ap3" => "0.6")
);
//Pega repete a analise somente para o caso corrente, ou seja 1.
for ($p=0; $p < 1; $p++) {
//Inicializa o arrey.
$_max = array();
//Pega todas as profissoes registradas no banco para análise.
for ($d = 0; $d < count($profissoes); $d++) {
//Inicializa o arrey.
$_min = array();
//Pega todos as aptidões registrados no banco para análise.
for ($i=1; $i < count($aptidoes)+1; $i++) {
//Cria um array com as relações (aptidão x profissao) e (aptidão x casos), e gera o valor mínimo de cada uma.
array_push($_min, min($profissoes[$d]['ap'.$i],$casos[$p]['ap'.$i]));
}
//Recebe o valor mínimo da relação, para cada profissão.
$valor = max($_min);
//Gera um array com o valor máximo, da relação dos mínimos.
array_push($_max, $valor.' - '.$profissoes[$d]['profissao']);
};
};
//Trás o resultado e a porcentagem de precisão.
echo '<h3><b>'.explode ("-", max($_max))[1].'</b> com precisão de '.(explode ("-", max($_max))[0] * 100).'%</h3>';