IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Trier un array php


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    décembre 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2009
    Messages : 169
    Points : 34
    Points
    34
    Par défaut Trier un array php
    Bonjour,

    J'ai besoin de trier un array qui contient 2 colonnes.

    [$i][0] et [$i][1]

    Je veux trier [$i] en fonction de [$i][1]
    Dans un ordre alphanumérique.
    En lisant le contenue en minuscule mais sans le modifier.
    En conservant la liaison entre [$i][0] et [$i][1].

    La doc est trop complexe pour moi arrivé à ce niveau.
    Existe-t-il par exemple avec sort un moyen de faire ceci.

    C'est a dire trier les lignes d'un tableau en fonction du contenu de sa 2eme colonne et à la condition de lire ce contenu en minuscule.

    Bonne journée

  2. #2
    Nouveau membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    juin 2010
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : juin 2010
    Messages : 19
    Points : 37
    Points
    37
    Par défaut
    Je pense que tu dois utiliser array_multisort(): http://www.php.net/manual/fr/functio...-multisort.php

    Si tu nous montrais l'array en question, on aurait plus facile pour t'aider.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    décembre 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2009
    Messages : 169
    Points : 34
    Points
    34
    Par défaut
    Voici mon array en question.
    Il se construit à partir de ma bdd.
    Si vous avez besoin d'un exemple avec contenu dites le moi.
    Il me semble que le multisort est fait pour 2 array différents.

    Bonne journée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    // LISTE DES TYPES
    $admin_event_type		= array();
    $i=0;
    $sql = "SELECT cle FROM LR_arts_cle WHERE groupe = 'EVENT_TYPE'";
    $r	=	mysql_query($sql) or die(mysql_error());
    while($v=mysql_fetch_array($r))
    {
    	$admin_event_type[$i]		= array();
    	$admin_event_type[$i][0]	= $v['cle'];
    	$admin_event_type[$i][1]	= $user->lang[$v['cle']];
    	$i++;
     
    }
    mysql_free_result($r);

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2007
    Messages : 748
    Points : 1 023
    Points
    1 023
    Par défaut
    YA bien les nouvelles fonctions de php , Iterator, mais peu être que la solution serait déja de revoir l'organisation du traitement des données...

    Sachant que tu veuille ordonner la 2em dimension du tableau, et sachant que tu puisse donner à la première dimension la clé principale...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $admin_ev[$key][$i][] = array();

    du coup , un tri comme prévu en php
    Conception / Dev

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    décembre 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2009
    Messages : 169
    Points : 34
    Points
    34
    Par défaut
    Si je traduit et ca me semble pas idiot en effet.
    C'est remplacer le key par ma 2eme colonne lors de sa création.

    Merci

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    décembre 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2009
    Messages : 169
    Points : 34
    Points
    34
    Par défaut
    Sauf que je ne pourrais pas trier selon la valeur en minuscule

  7. #7
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Bonjour,

    As tu essayé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    array_multisort(array_values($admin_event_type), array_keys($admin_event_type), $admin_event_type);
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    décembre 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2009
    Messages : 169
    Points : 34
    Points
    34
    Par défaut
    Je vais essayer, j'espère pouvoir lui coller un strtolower en plus.

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    décembre 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2009
    Messages : 169
    Points : 34
    Points
    34
    Par défaut
    J'ai aussi besoin d'un coup de main sur le JS
    nb mon array a changé de nom pour conserver un autre code moins bon qui fonctionne un peu.

    J'utilise une functon pour transformer un array php en array JS.

    Je n'ai jamais utilisé $key, du coup j'ai du mal

    J'arrive à écrire les key mais pas la value correspondante :
    art_select += ">"+art_choix[??]+"</option>";CODE PHP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $admin_art	= array();
    $i=0;
    $sql = "SELECT cle FROM LR_arts_cle WHERE groupe = 'ART'";
    $r	=	mysql_query($sql) or die(mysql_error());
    while($v=mysql_fetch_array($r))
    {
    	$admin_art[$key]	= $user->lang[$v['cle']];
    	$admin_art[]		= $v['cle'];
        $i++;
    }

    Code JS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function insert_art()
    {
    	result = 0;
    	art_select	= "<tr height='30'><td >Art</td><td><select name='art' id='art' class='my_select'>";
    	for (num=0;num<art_choix.length;num++)
    	{
    		art_select += "<option value='"+art_choix[num]+"'"; 
    		if (array_info[i][4] == art_choix[num]){art_select += " selected";}		
    		art_select += ">"+art_choix[??]+"</option>";
    	}
    	art_select += "</select></td></tr>";
     
    	return art_select;
    }

  10. #10
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Tu confonds

    Le Php, c'est qd tu es sur le serveur avant d'envoyer du html sur le navigateur. Une fois sur le navigateur, tu peux faire du Javascript avec des données qui sont que du côté client (comme changer une balise html, modifier des événements) mais surtout pas faire du PHP

    Conclusion passer par de l'Ajax mais c'est beaucoup moins simple ....
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    décembre 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2009
    Messages : 169
    Points : 34
    Points
    34
    Par défaut
    Je ne vois pas le rapport.

    Je construit mon array en php.
    Je le transforme en JS
    Et je me sert de cet array JS pour créer ma liste d'option dans mon select.

    Aucun souci PHP/JS

    La seule difficulté est le trie des options.
    Le reste fonctionne très bien.

    J'ai même déjà un tri mais de manière plus gourmande en ressource.
    C'est pourquoi j'aimerai passer par cette utilisation de key.

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    décembre 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2009
    Messages : 169
    Points : 34
    Points
    34
    Par défaut
    Je met le sujet en pause, je commence à comprendre, je continu a apprendre.
    Je suis en train de faire un tableau multidimensionnel et gerer les key comme il faut.
    Je reviendrais quand j'aurai réussit ça.

  13. #13
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Citation Envoyé par westernz Voir le message
    Je ne vois pas le rapport.

    Je construit mon array en php.
    Je le transforme en JS
    Et je me sert de cet array JS pour créer ma liste d'option dans mon select.

    Aucun souci PHP/JS

    La seule difficulté est le trie des options.
    Le reste fonctionne très bien.

    J'ai même déjà un tri mais de manière plus gourmande en ressource.
    C'est pourquoi j'aimerai passer par cette utilisation de key.
    Tu construit un array en Php donc tu es sur le serveur Ok.
    Je le transforme en JS c'est là que je comprends plus ...

    Du coup dans ta fonction js, j'imagine que c'est 'art_choix ce tableau Php devenu du Js', comment veux tu qu'il connaisse ce tableau ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Je met le sujet en pause, je commence à comprendre, je continu a apprendre.
    Je suis en train de faire un tableau multidimensionnel et gerer les key comme il faut.
    En conclusion, la réponse à la première question est elle bonne ?
    Je commence à comprendre, quoi ?
    Je mets en pause ... merci de vos réponses alors
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    décembre 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2009
    Messages : 169
    Points : 34
    Points
    34
    Par défaut
    Bonjour,

    Oui évidement que je remerci de vos réponses.
    Parfois j'oublie les formes dans le tas de travail

    Je vais tenter ajax sous la pression d'un ami.
    Le sujet reste toujours en pause.

    Coté tableau c'est vrai que le tableau php était optionnel finalement.
    Mais le tableau JS devait etre construit à partir de requetes php.
    Et je n'arrivais pas a faire mon tableau proprement en JS directement.
    Il y avait je crois une autre raison, en rapport au informations necessaires au chargement de la page. mais je ne m'en souviens plus.

    Le JS lui, l'est pour rendre la page dynamique sans le recharger.

    Allé, je tente d'apprendre ajax.
    Mais je vais conserver mes tableau JS, je prend ajax que pour l'ecriture en bdd, pour le coté dynamique. Et conserve JS pour économiser le serveur et utiliser les ressources client a la place.

    Bonne journée

  15. #15
    Membre éprouvé

    Profil pro
    Inscrit en
    juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2007
    Messages : 748
    Points : 1 023
    Points
    1 023
    Par défaut
    Petit conseil, essai d'utiliser JSON pour échanger des données en ajax entre php et js , et aussi pour cela le plus simple c'est d'utiliser jquery


    Conception / Dev

  16. #16
    Nouveau membre du Club
    Profil pro
    Inscrit en
    décembre 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2009
    Messages : 169
    Points : 34
    Points
    34
    Par défaut
    Je vais voir.
    Pour le moment je ne connais pas tout ca.
    Merci

Discussions similaires

  1. Augmenter un array php via js
    Par bastien dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 17/09/2008, 11h26
  2. [Tableaux] Recherche évoluée dans un array PHP
    Par fanfouer dans le forum Langage
    Réponses: 2
    Dernier message: 01/03/2008, 13h23
  3. [Tableaux] trier plusieurs array
    Par djedje37et28 dans le forum Langage
    Réponses: 5
    Dernier message: 29/03/2007, 10h44
  4. [Tableaux] Comment trier un array multidimensionel ?
    Par kaptnkill dans le forum Langage
    Réponses: 2
    Dernier message: 26/09/2006, 09h31
  5. [Tableaux] Trier un array
    Par borgfabr dans le forum Langage
    Réponses: 11
    Dernier message: 23/04/2006, 15h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo