La communauté des utilisateurs du CMS Zite
Vous n'êtes pas identifié.
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
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 21:09:50)
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
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 ![]()
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...
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..![]()
Hors ligne
Il n'y aurait pas le safe mode ON chez ton hebergeur?
Hors ligne
Ah non, tu est chez 1 and 1, je crois.
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é.
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 16:05:35)
Hors ligne