Galera, tô estreando aqui e estou com o seguinte problema: Criei uma função com uma dica que encontrei aqui mesmo no stackoverflow.
function DozenGenerate($ game,$ dozen) { $ this->game = $ game; $ this->dozen = $ dozen; if ($ game === 0) { return array(array()); } if (count($ dozen) === 0) { return array(); } if (count($ dozen)< $ game){ } ob_start(); $ dozen_receive = $ dozen[0]; $ dozen_compare = array_slice($ dozen,1,count($ dozen)-1); $ dozenI = $ this->DozenGenerate($ game-1,$ dozen_compare); for ($ i = 0; $ i < count($ dozenI);$ i++){ array_splice($ dozenI[$ i],0,0,$ dozen_receive); } ob_get_contents(); $ dozenII = $ this->DozenGenerate($ game,$ dozen_compare); ob_end_flush(); return array_merge($ dozenI,$ dozenII); }
Daí crio um range e utilizo a função:
$ range = range(1,24); $ numbers = DozenGenerate(15,$ range); print_r($ numbers);
Quando gera combinações únicas muito grandes, retorna esse erro que seria natural:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 25165832 bytes) in C:\xampp\htdocs\netboloes\class\folk.php on line 44
Queria saber como faço pra fazer o esvaziamento de memória para que a função continue executando, sem retornar essa mensagem e sim a array? Espero que possam me ajudar.