Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
j'ai trouvé un code qui m'intéresse mais malheureusement il ne fonctionne pas... Je ne comprend absolument pas le code donc il m'est impossible de le corriger!! En espérant trouver de l'aide ici!!
<?php
/******************************************************************************/
/* */
/* __ ____ */
/* ___ / / ___ / __/__ __ _____________ ___ */
/* / _ \/ _ \/ _ \_\ \/ _ \/ // / __/ __/ -_|_-< */
/* / .__/_//_/ .__/___/\___/\_,_/_/ \__/\__/___/ */
/* /_/ /_/ */
/* */
/* */
/******************************************************************************/
/* */
/* Titre : Obtenir toute les combinaisons possibles */
/* */
/* URL : http://www.phpsources.org/scripts317-PHP.htm */
/* Auteur : nixi54 */
/* Date édition : 26 Déc 2007 */
/* */
/******************************************************************************/
// le tableau qui contient les éléménts
$tableau_elements = array("el1","el2","el3","el4");
// compte le nombre d'éléménts
$n = count($tableau_elements);
// declare le tableau de sortie
$sortie = array(); // Tableau de sortie
function liste_combinaison($debut,$tags,$profondeur) {
global $sortie;
if($profondeur == 0) {
array_push($sortie,$debut);
return;
}
$n = count($tags);
for($i=0;$i<$n;$i++) {
liste_combinaison($debut.$tags[$i].",",array_slice($tags,$i+1),$profondeur-1);
}
}
for($i=1;$i<=$n;$i++) { liste_combinaison(",",$tableau_elements,$i);
}
// sortie
echo '<pre>';
print_r($sortie);
echo '</pre>';
// affiche
/*
Array
(
[0] => ,el1,
[1] => ,el2,
[2] => ,el3,
[3] => ,el4,
[4] => ,el1,el2,
[5] => ,el1,el3,
[6] => ,el1,el4,
[7] => ,el2,el3,
[8] => ,el2,el4,
[9] => ,el3,el4,
[10] => ,el1,el2,el3,
[11] => ,el1,el2,el4,
[12] => ,el1,el3,el4,
[13] => ,el2,el3,el4,
[14] => ,el1,el2,el3,el4,
)
*/
?>
Source du code: http://www.phpsources.org/scripts317-PHP.htm
Merci
Mieux vaut poser une question et passer pour un con, que se taire et le rester...
Hors ligne
Personne pour m'aider?
Mieux vaut poser une question et passer pour un con, que se taire et le rester...
Hors ligne
Si ... mais tu seras responsable du retard de l'alpha
Après la ligne
// declare le tableau de sortie
ajoute cette déclaration:
global $sortie;
et ça marche
a+
Jean-Paul
Hors ligne
Bon ça marche pas...
Comme quand jpg dit que ça marche, ça marche, j'ai testé hors zite+ et ça marche effectivement, même sans la modif de jpg! http://s303106998.onlinehome.fr/combi.php
Donc pourquoi en mettant le code sous zite+ ça affiche:
'; print_r($sortie); echo ''; ?>
Dernière modification par Fredo42 (08/06/2010 23:09:50)
Mieux vaut poser une question et passer pour un con, que se taire et le rester...
Hors ligne
Tout ce que je peux te dire, c'est que si je prends le code donné dans ton premier message, j'ai un message d'avertissement:
Warning: array_push() expects parameter 1 to be array, null given in F:\Data\HomePage\www\zite_full\zdata\1276029783.txt on line 15
Avec le global $sortie;
j'ai le résultat que tu attends
ps: ma page php sous zite+ a ce code (à priori un coupé/collé du tien)
<?php
// le tableau qui contient les éléménts
$tableau_elements = array("el1","el2","el3","el4");
// compte le nombre d'éléménts
$n = count($tableau_elements);
// declare le tableau de sortie
global $sortie;
$sortie = array(); // Tableau de sortie
function liste_combinaison($debut,$tags,$profondeur) {
global $sortie;
if($profondeur == 0) {
array_push($sortie,$debut);
return;
}
$n = count($tags);
for($i=0;$i<$n;$i++) {
liste_combinaison($debut.$tags[$i].",",array_slice($tags,$i+1),$profondeur-1);
}
}
for($i=1;$i<=$n;$i++) { liste_combinaison(",",$tableau_elements,$i);
}
// sortie
echo '<pre>';
print_r($sortie);
echo '</pre>';
?>
avec ce résultat:
Array
(
[0] => ,el1,
[1] => ,el2,
[2] => ,el3,
[3] => ,el4,
[4] => ,el1,el2,
[5] => ,el1,el3,
[6] => ,el1,el4,
[7] => ,el2,el3,
[8] => ,el2,el4,
[9] => ,el3,el4,
[10] => ,el1,el2,el3,
[11] => ,el1,el2,el4,
[12] => ,el1,el3,el4,
[13] => ,el2,el3,el4,
[14] => ,el1,el2,el3,el4,
)
si ça peux aider ...
Hors ligne
Bon ça marche pas...
Comme quand jpg dit que ça marche, ça marche, j'ai testé hors zite+ et ça marche effectivement, même sans la modif de jpg! http://s303106998.onlinehome.fr/combi.php
Donc pourquoi en mettant le code sous zite+ ça affiche:'; print_r($sortie); echo ''; ?>
Ta page est en HTML, pas en PHP
Hors ligne
Quel con!!! en 3 lettres maître capélo!!!
Merci
Mieux vaut poser une question et passer pour un con, que se taire et le rester...
Hors ligne
Bon ben va falloir que je trouve une autre solution!!! Je tombe sur une erreur 500 dès que le nombre d'éléments dépasse les 17...
Mieux vaut poser une question et passer pour un con, que se taire et le rester...
Hors ligne
Ben oui ... la récursion en php sur un site Web ... elle a des limites quand même
Hors ligne
T'as des idées?? Sachant que le nombre d'élément est succeptible d'approcher les 50!!
Mieux vaut poser une question et passer pour un con, que se taire et le rester...
Hors ligne
tu peux toujours essayer de mettre ça en début de script:
<?php
@set_time_limit(0);
sur un malentendu, ça peut marcher..;)
Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows
Hors ligne
déjà fait...
Mieux vaut poser une question et passer pour un con, que se taire et le rester...
Hors ligne
Il n'y aurait pas le safe mode ON chez ton hebergeur?
Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows
Hors ligne
Ah non, tu est chez 1 and 1, je crois.
Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows
Hors ligne
T'as des idées?? Sachant que le nombre d'élément est succeptible d'approcher les 50!!
Il faut réécrire ton algorithmique en non récursif
Hors ligne
Je ne sais même pas ce qu'est le récursif, alors le non-récursif....
Merci quand même!
J'en ai pas besoin tout de suite, je chercherai mieux cet été.
Mieux vaut poser une question et passer pour un con, que se taire et le rester...
Hors ligne
défintion:
Les fonctions récursives sont des fonctions qui s'appellent elles-mêmes. Elles doivent donc résoudre des problèmes qui "s'appellent eux-mêmes". Dans certains d'entre eux, la solution du problème général demande la résolution de plusieurs sous-problèmes particuliers, qui sont semblables au premier problème.
source et plus d'infos:
http://www.siteduzero.com/tutoriel-3-36 … #ss_part_2
++
Dernière modification par davyk (19/06/2010 18:05:35)
Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows
Hors ligne
Pages : 1