PHP : Lister les combinaisons uniques de tags
4 messages
• Page 1 sur 1
Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics
- charlieroot
- Nouveau WRInaute

- Messages: 31
- Inscription: 5 Aoû 2005
PHP : Lister les combinaisons uniques de tags
Bonjour,
J'aimerais pouvoir lister les combinaisons uniques d'un tableau de tags, exemple :
$tags = array("orange","citron","banane","pomme");
Nous donnerait :
(profondeur 1)
orange
citron
banane
pomme
(profondeur 2)
orange citron
orange banane
orange pomme
citron banane
citron pomme
banane pomme
(profondeur 3)
orange citron banane
orange citron pomme
orange banane pomme
citron banane pomme
(profondeur 4)
orange citron banane pomme
-----------------------------------
En fait cela équivaut à une imbriquation de for (4 dans cet exemple) comme suit :
J'ai pensé à la récursivité, mais je n'arrive pas à l'appliquer dans ce cas là, alors si quelqu'un pouvait me donner un petit coup de pouce, ce serait sympa.
Merci par avance !
J'aimerais pouvoir lister les combinaisons uniques d'un tableau de tags, exemple :
$tags = array("orange","citron","banane","pomme");
Nous donnerait :
(profondeur 1)
orange
citron
banane
pomme
(profondeur 2)
orange citron
orange banane
orange pomme
citron banane
citron pomme
banane pomme
(profondeur 3)
orange citron banane
orange citron pomme
orange banane pomme
citron banane pomme
(profondeur 4)
orange citron banane pomme
-----------------------------------
En fait cela équivaut à une imbriquation de for (4 dans cet exemple) comme suit :
- Code: Tout sélectionner
for($i=1;$i<=$profondeur;$i++) {
for($j=$i+1;$j<=$profondeur;$j++) {
for($k=$j+1;$k<=$profondeur;$k++) {
for($l=$k+1;$l<=$profondeur;$l++) {
}
}
}
}
J'ai pensé à la récursivité, mais je n'arrive pas à l'appliquer dans ce cas là, alors si quelqu'un pouvait me donner un petit coup de pouce, ce serait sympa.
Merci par avance !
- Tilt
- WRInaute impliqué

- Messages: 858
- Inscription: 26 Mar 2005
Bonjour,
Voilà ma solution ad hoc:
Voilà ma solution ad hoc:
- Code: Tout sélectionner
$tags=array("orange","citron","banane","pomme");
$tags[]="";$r=array();$z=0;while($z<300){mt_srand();shuffle($tags);$o=join("%spl%",$tags);$o=explode("%spl%",$o,mt_rand(1,count($tags)));array_pop($o);sort($o);$o=join(" ",$o);if(!preg_match("`^\s*$`",$o)){$o=preg_replace("`\s+`"," ",trim($o));if(!in_array($o,$r)){$r[]=$o;$z=0;}else{$z++;}}}
echo"<pre>";print_r($r);echo"</pre>";
- charlieroot
- Nouveau WRInaute

- Messages: 31
- Inscription: 5 Aoû 2005
Ca marche !
Mais peux tu m'expliquer un peu le principe de ton code ?
N'y a t-il pas un moyen plus simple ?
En tout cas merci
Mais peux tu m'expliquer un peu le principe de ton code ?
N'y a t-il pas un moyen plus simple ?
En tout cas merci
- charlieroot
- Nouveau WRInaute

- Messages: 31
- Inscription: 5 Aoû 2005
Après un peu de jugeote, j'ai trouvé la solution :
A bientot !
- Code: Tout sélectionner
$t = array("orange","citron","banane","pomme");
$n = count($t);
$ct = array(); // Tableau qui va contenir les rcombinaisons de tags
function listeCombi($debut,$tags,$profondeur) {
global $ct;
if($profondeur == 0) {
array_push($ct,$debut);
return;
}
$n = count($tags);
for($i=0;$i<$n;$i++) {
listeCombi($debut.$tags[$i].",",array_slice($tags,$i+1),$profondeur-1);
}
}
for($i=1;$i<=$n;$i++) {
listeCombi(",",$t,$i);
}
echo "<pre>";
print_r($ct);
echo"</pre>";
A bientot !
4 messages
• Page 1 sur 1
Formation recommandée sur ce thème :
Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par les experts Google Analytics de Ranking Metrics.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Outils pour lister les meta tags de mon site
- hebergement php pour plus de 5000 visiteurs uniques
- Probleme PHP basique : lister un tableau !
- php lister les liens de ma page html
- lister les fichiers d'un dossier en php
- Script PHP pour lister et killer un process
- PHP Mysql Lister des régions, villes, departements
- Code php pour lister les catégories d'un annuaire 1 two
- php lister un repertoire mais pas tout les fichier
- Metas Tags + Php
- Nuage de tags Wordle pour WebRankInfo - 29-04-2009
- Google au 4eme rang mondial en nb de visites - 08-07-2003
- La commande link: sur Google - 20-12-2005
- Opérateurs de recherche avancée sur MSN - 27-06-2005
- Accord entre Ask Jeeves et Google - 18-07-2002
- Chiffres-clés sur Yandex, le moteur russe - 23-02-2010
- Microsoft désactive les opérateurs link: et linkdomain: - 29-03-2007
- Ask dévoile sa technologie RhymeRank - 31-03-2006
- Lister les sous-domaines
Cet outil vous permet de trouver la liste des sous-domaines (indexés) d'un site.
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité
