Forum ZitePLUS

La communauté des utilisateurs du CMS ZitePLUS

Vous n'êtes pas identifié(e).

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

Fredo42
Membre
Inscription : 03/10/2009
Messages : 470
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!!

<?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 21:48:59

Fredo42
Membre
Inscription : 03/10/2009
Messages : 470
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 22:50:37

jpg
Administrateurs
Inscription : 19/11/2008
Messages : 2 086
Site Web

Re : Problème avec une fonction

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

Après la ligne

// declare le tableau de sortie

ajoute cette déclaration:

global $sortie;

et ça marche smile

a+
Jean-Paul

Hors ligne

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

Fredo42
Membre
Inscription : 03/10/2009
Messages : 470
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 23:09:50)


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

Hors ligne

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

jpg
Administrateurs
Inscription : 19/11/2008
Messages : 2 086
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)

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

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

jpg
Administrateurs
Inscription : 19/11/2008
Messages : 2 086
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 23:25:48

Fredo42
Membre
Inscription : 03/10/2009
Messages : 470
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 09/06/2010 00:14:27

Fredo42
Membre
Inscription : 03/10/2009
Messages : 470
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 09/06/2010 00:35:32

jpg
Administrateurs
Inscription : 19/11/2008
Messages : 2 086
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 09/06/2010 00:37:04

Fredo42
Membre
Inscription : 03/10/2009
Messages : 470
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 04:21:29

davyk
Membre
Inscription : 09/09/2008
Messages : 819
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..;)


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

Hors ligne

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

Fredo42
Membre
Inscription : 03/10/2009
Messages : 470
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 20:59:39

davyk
Membre
Inscription : 09/09/2008
Messages : 819
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 21:02:01

davyk
Membre
Inscription : 09/09/2008
Messages : 819
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 09:03:53

jpg
Administrateurs
Inscription : 19/11/2008
Messages : 2 086
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 15:10:00

Fredo42
Membre
Inscription : 03/10/2009
Messages : 470
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 18:04:08

davyk
Membre
Inscription : 09/09/2008
Messages : 819
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 18:05:35)


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

Hors ligne

Pied de page des forums