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

Résolu/Fermé
Fontainard Messages postés 68 Date d'inscription dimanche 16 mars 2014 Statut Membre Dernière intervention 24 janvier 2017 - Modifié par Fontainard le 11/09/2014 à 09:47
Fontainard Messages postés 68 Date d'inscription dimanche 16 mars 2014 Statut Membre Dernière intervention 24 janvier 2017 - 8 oct. 2014 à 20:55
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

Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
11 sept. 2014 à 13:27
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
Fontainard Messages postés 68 Date d'inscription dimanche 16 mars 2014 Statut Membre Dernière intervention 24 janvier 2017
8 oct. 2014 à 20:55
Félicitations bonhomme, c'est ce qu'il me fallait merci grandement ! (désolé pour la latence!)
0