trier un tableau multidimentionnel

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : trier un tableau multidimentionnel

par Jules Petibidon » 19 juin 2007, 21:54

Hello,

C'est rigolo ca va bientot faire 15 jours que tu cherches, alors que la réponse t'avait été donnée par genova... c'est vrai que vu de loin usort() a l'air compliqué, et pourtant une fois qu'on a pigé le principe , c'est simplissime.

Sinon petit tips rigolo mais peut-être peu fiable (encore que... ) : Les fonctions sort(), rsort() (et tous les bidules finissant en sort non spécifiques aux tableaux multidimensionnels) sur un tableau multidimensionnel triera les valeurs, donc des tableaux, sur la première clé déclarée. Cela fonctionne aussi pour les tableaux d'objets.

par Invité » 19 juin 2007, 21:30

Hors sujet, c'est vrais, mais très intéressent. Je ne connaissait pas cette possibilitée, d'utiliser les accents dans les variables, sa vas être plus facile de se relire :oops: !!!

en ce qui concerne mon problème, je suis sur qu'il y a une solution simple, mais je ne suis pas assé expérimenté pour la trouver, alors si quelqu'un avais une réponse, une solution pour moi :shock:

par zeus » 18 juin 2007, 23:37

ok, d'accord. Effectivement, je ne t'avais pas compris ;)

Toujours est-il que nous avons pu poster 2 remarques pertinentes, même si elles sont hors sujet ;)

par Invité » 18 juin 2007, 23:34

Zeus, on a pas dû se comprendre.

ce que j'ai voulu dire, c'est que les caractères accentués sont autorisés dans les noms de variables en PHP.

on passe de "$les_plus_rechercher" ( avec la remarque de Klomac )
à "$les_plus_recherchés" ( qui est en "francais intelligible" selon tes propres termes )

( chris81, je ne réponds pas à ta question, désolé de venir polluer ton post )

par zeus » 18 juin 2007, 22:47

bonsoir,

> ... car cela t'oblige à faire des fautes d'orthographe volontairement dans tes noms de variables pour qu'elles gardent leur sens (genre $les_plus_rechercher).

$les_plus_recherchés est valide en PHP.
Ce n'est pas parce qu'un code est valide en PHP qu'on ne doit faire aucun effort.
Je tiens à rappeler qu'il n'y a pas le parseur PHP qui est voué à lire un code ... il y a aussi d'autre développeurs qui peuvent être bien content de pouvoir lire du francais (ou de l'anglais) intelligible.

A partir du moment où tu travailles en équipe, tu comprends à quel point c'est important ;)

par Invité » 18 juin 2007, 21:00

bonsoir,

> ... car cela t'oblige à faire des fautes d'orthographe volontairement dans tes noms de variables pour qu'elles gardent leur sens (genre $les_plus_rechercher).

$les_plus_recherchés est valide en PHP.

par chris81 » 18 juin 2007, 19:35

Merci pour cette réponce "Klomac", et oui les variable en francais c moyen.

En ce qui concerne le code que tu ma donné, je le teste et sa ne fonctionne pas, je ne suis pas tres familiarisé avec les tableaux, quant je test l'array avec le tableau multidimentionnel j'obtien sa
Array ( [nom] => Array ( [nb_recherches3] => [nom] => ) [nb_recherches3] => Array ( [nb_recherches3] => [nom] => ) ) 
je pense que ce n'est pas bon et j'admet ne pas savoir comment arranger sa, ce doit être encore une foi, une faute bête !!!

par Klomac » 07 juin 2007, 13:41

// trensforme en tableau de colone mes données 
foreach ($les_plus_rechercher2 as $key => $row)  
    { 
     $nb_recherches3[$key] = $row['nb_recherches3']; 
     $nom[$key] = $row['nom']; 
    } 

// Trie mon tableau multidimentionnel         
array_multisort( 
$nb_recherches3, SORT_DESC, SORT_NUMERIC,  
 $nom, SORT_ASC, SORT_STRING);  
         
foreach ($nb_recherches3 as $key => $row)
{
  $les_plus_rechercher3[$key] = array('nb_recherches3' => $row, 'nom' => $noms[$key]);
}

print_r($les_plus_rechercher3);
C'est pas très propre mais je pense que ça marche.

Un commentaire sur ton nommage de variables : coder en français n'est peut-être pas un choix pertinent, car cela t'oblige à faire des fautes d'orthographe volontairement dans tes noms de variables pour qu'elles gardent leur sens (genre $les_plus_rechercher). C'est peut-être anodin mais bon...

par chris81 » 07 juin 2007, 12:35

Cette fonction me semble encore plus compliquée

je veux juste trier $nb_recherches3 por ordre numéric et décroissent, et que l'autre infos reste lier

par Genova » 07 juin 2007, 09:48

Pour trier les tableaux multidimensionnels je te recommande plutôt la fonction usort()

trier un tableau multidimentionnel

par chris81 » 06 juin 2007, 19:27

Bonjour

J'ais un petit problème, je cherche à trier un tableau multidimentionnel avec la fonction array_multisort, mes tableau sont bon, je n'est aucun messages d'erreur lorsque je fait appel à la fonction, j'ais regardé dans plusieurs forum ainsi que dans la doc php et je ne comprend pas pourquoi sa ne fonctionne pas.

Je vous donne mes données
// trensforme en tableau de colone mes données
foreach ($les_plus_rechercher2 as $key => $row) 
    {
     $nb_recherches3[$key] = $row['nb_recherches3'];
     $nom[$key] = $row['nom'];
    }

// Trie mon tableau multidimentionnel		
array_multisort(
$nb_recherches3, SORT_DESC, SORT_NUMERIC, 
 $nom, SORT_ASC, SORT_STRING,
 $les_plus_rechercher2); 
		
// j'affiche mon array
print_r($les_plus_rechercher2);
et comme je l'est dit je n'est pas de messages d'erreur et mon tableau n'est pas trié.