Tri tableau à partir d'une liste.txt et de deux variables.

[Résolu/Fermé]
Signaler
Messages postés
68
Date d'inscription
dimanche 16 mars 2014
Statut
Membre
Dernière intervention
24 janvier 2017
-
Messages postés
68
Date d'inscription
dimanche 16 mars 2014
Statut
Membre
Dernière intervention
24 janvier 2017
-
Bonjour,

Ce que j'essaye de faire n'est forcément pas compliqué, mais je n'arrive pas néanmoins à trier mes liens en fonction de la catégorie dans un array, l'objectif est de réaliser une simple liste de liens qui seraient rangés par catégories "pour une page partenaire".

Voilà mon fichier texte :


http://www.lien1.com/,a
http://www.lien2.com/,b
http://www.lien3.com/,a
http://www.lien4.com/,b
http://www.lien5.com/,b
http://www.lien6.com/,a




et mon code php actuel



$tableau = array();
$fn = fopen('liens.txt', 'r') or die ("probleme ouverture du fichier texte");

while ($ligne=fgets($fn))
{
list($url, $cat)= explode(",",$ligne);
$tableau[]=$url;
echo '<td> </td>';
}
print_r($tableau);
fclose($fn);
?>


J'ai tenté de trier avec sort, mais je n'ai que réussi à faire à part un tri alphabétique :p. j'ai essayé d'imbriquer un for ($i=0 ; $i<=cpt; $i++) en enregistrant à chaque fois une variable $catactu pour pouvoir ensuite la comparer, J'ai essayé d'incorporer de la même manière une fonction de tri qui compare avec strcmp($catactu["tableau"],$cat["tableau"] !== 0){ et usort sans rien réussir à obtenir.

Bref, je n'arrive pas à formaliser mon code pour que ça fonctionne correctement, votre aide est donc assurément la bienvenue s'il vous plait !

Merci !



1 réponse

Messages postés
3671
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
999
Bonjour,

Une solution serait qu'au lieu d'avoir un tableau plat, tu aies un tableau de tableaux :
$tableau = array();
$fn = fopen('liens.txt', 'r') or die ("probleme ouverture du fichier texte");

while ($ligne=fgets($fn))
{
    list($url, $cat)= explode(",", $ligne);
    if (!isset($tableau[$cat]))
        $tableau[$cat] = array();
    $tableau[$cat][] = $url;
}
print_r($tableau);
fclose($fn);


Xavier
2
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 42674 internautes nous ont dit merci ce mois-ci

Messages postés
68
Date d'inscription
dimanche 16 mars 2014
Statut
Membre
Dernière intervention
24 janvier 2017

Félicitations bonhomme, c'est ce qu'il me fallait merci grandement ! (désolé pour la latence!)