#1 07/06/2010 00:25:10

Fredo42
Membre actif
Date d'inscription: 03/10/2009
Messages: 459
Site web

Problème avec une fonction

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!!

Code:

<?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

 

#2 08/06/2010 19:48:59

Fredo42
Membre actif
Date d'inscription: 03/10/2009
Messages: 459
Site web

Re: Problème avec une fonction

Personne pour m'aider? sad


Mieux vaut poser une question et passer pour un con, que se taire et le rester...

Hors ligne

 

#3 08/06/2010 20:50:37

jpg
Moderator
Date d'inscription: 19/11/2008
Messages: 843
Site web

Re: Problème avec une fonction

Si ... mais tu seras responsable du retard de l'alpha tongue

Après la ligne

Code:

// declare le tableau de sortie

ajoute cette déclaration:

Code:

global $sortie;

et ça marche smile

a+
Jean-Paul

Hors ligne

 

#4 08/06/2010 21:08:26

Fredo42
Membre actif
Date d'inscription: 03/10/2009
Messages: 459
Site web

Re: Problème avec une fonction

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 21:09:50)


Mieux vaut poser une question et passer pour un con, que se taire et le rester...

Hors ligne

 

#5 08/06/2010 21:21:38

jpg
Moderator
Date d'inscription: 19/11/2008
Messages: 843
Site web

Re: Problème avec une fonction

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)

Code:

<?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:

Code:

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

 

#6 08/06/2010 21:22:49

jpg
Moderator
Date d'inscription: 19/11/2008
Messages: 843
Site web

Re: Problème avec une fonction

Fredo42 a écrit:

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 big_smile

Hors ligne

 

#7 08/06/2010 21:25:48

Fredo42
Membre actif
Date d'inscription: 03/10/2009
Messages: 459
Site web

Re: Problème avec une fonction

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

 

#8 08/06/2010 22:14:27

Fredo42
Membre actif
Date d'inscription: 03/10/2009
Messages: 459
Site web

Re: Problème avec une fonction

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

 

#9 08/06/2010 22:35:32

jpg
Moderator
Date d'inscription: 19/11/2008
Messages: 843
Site web

Re: Problème avec une fonction

Ben oui ... la récursion en php sur un site Web ... elle a des limites quand même wink

Hors ligne

 

#10 08/06/2010 22:37:04

Fredo42
Membre actif
Date d'inscription: 03/10/2009
Messages: 459
Site web

Re: Problème avec une fonction

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

 

#11 09/06/2010 02:21:29

davyk
Membre actif
Date d'inscription: 09/09/2008
Messages: 814
Site web

Re: Problème avec une fonction

tu peux toujours essayer de mettre ça en début de script:
<?php
@set_time_limit(0);

sur un malentendu, ça peut marcher..wink


Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows

Hors ligne

 

#12 09/06/2010 05:15:11

Fredo42
Membre actif
Date d'inscription: 03/10/2009
Messages: 459
Site web

Re: Problème avec une fonction

déjà fait...


Mieux vaut poser une question et passer pour un con, que se taire et le rester...

Hors ligne

 

#13 18/06/2010 18:59:39

davyk
Membre actif
Date d'inscription: 09/09/2008
Messages: 814
Site web

Re: Problème avec une fonction

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

 

#14 18/06/2010 19:02:01

davyk
Membre actif
Date d'inscription: 09/09/2008
Messages: 814
Site web

Re: Problème avec une fonction

Ah non,  tu est chez 1 and 1, je crois.


Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows

Hors ligne

 

#15 19/06/2010 07:03:53

jpg
Moderator
Date d'inscription: 19/11/2008
Messages: 843
Site web

Re: Problème avec une fonction

Fredo42 a écrit:

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

 

#16 19/06/2010 13:10:00

Fredo42
Membre actif
Date d'inscription: 03/10/2009
Messages: 459
Site web

Re: Problème avec une fonction

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

 

#17 19/06/2010 16:04:08

davyk
Membre actif
Date d'inscription: 09/09/2008
Messages: 814
Site web

Re: Problème avec une fonction

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 16:05:35)


Quand Chuck Norris utilise Windows, il ne plante pas.
ChuckNorrisN'aimePasWindows

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB
Traduction par FluxBB.fr