Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23
  1. #1
    Utente di HTML.it L'avatar di ertos
    Registrato dal
    Nov 2005
    Messaggi
    448

    Lista array foreach in ordine alfabetico

    Salve ho una lista di nome nel seguente modo
    $lista="marco, giuseppe, francesca"; etc etc

    Vorrei con un foreah stampare a video i nomi in odrine alfabetico come posso fare?
    Attualmente utilizzo questo semplice codice
    Codice PHP:

    $array_nome 
    explode(",",$lista);
        foreach(
    $array_nome as $valore_nome)
               {
    echo
    "$valore_nome";


  2. #2
    puoi ordinare gli array usando funzioni apposite: http://php.net/manual/en/array.sorting.php

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    Codice PHP:
    $lista "marco,giuseppe,francesca";
    $lista_array explode(',',$lista);
    sort($lista_array);
    foreach(
    $lista_array as $nome)
        echo 
    $nome.PHP_EOL

  4. #4
    Utente di HTML.it L'avatar di ertos
    Registrato dal
    Nov 2005
    Messaggi
    448
    Grazie RoTeam ma ho dovuto modificare un po l'array che adesso ha questa struttura

    Codice PHP:
    $lista[2] = "marco";
    $lista[4] = "giuseppe";
    $lista[7] = "francesca"
    Come posso ordinarli in ordine alfabetico?

  5. #5
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Codice PHP:
    sort($lista);
    foreach(
    $lista as $nome)
        echo 
    $nome.PHP_EOL
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  6. #6
    Utente di HTML.it L'avatar di ertos
    Registrato dal
    Nov 2005
    Messaggi
    448
    Grazie per le risposte, ho in parte risolto ma ho un problema che vi spiego.

    Ho una query che mi genera l'array in questo modo

    Codice PHP:
    $query_pratica mysql_query("SELECT * FROM pratica WHERE ... ORDER BY data DESC");
    while ( 
    $row_pratica = @mysql_fetch_array($query_pratica) ) 
      {
      
    $id_pratica $row_pratica['id'];
      
    $cliente stripslashes($row_pratica['cliente']);
      
      
    $query_cliente mysql_query("SELECT * FROM clienti WHERE id='$cliente'");
       while ( 
    $row_cliente = @mysql_fetch_array($query_cliente) ) 
        {
         
    $id_cliente $row_cliente['id'];    
         
    $cognome_cliente stripslashes($row_cliente['cognome']);
         
    $ragione_sociale stripslashes($row_cliente['ragione_sociale']);
         }
    $lista[$id_pratica] = "$cognome_cliente$ragione_sociale";
        } 
    A questo punto ho il mio array con questa struttura
    $lista[2] = "marco";
    $lista[4] = "giuseppe";
    $lista[7] = "francesca";
    ...
    ...
    ....

    Ora vorrei stampare a video in ordine alfabetico i nom, utilizzo questo codice:

    Codice PHP:
    sort($lista[]);
    foreach ( 
    $lista as $chiave => $valore) {
    echo 
    $chiave."--".$valore."<br/>";

    Ma a video non mi stampa l'ordine alfabetico, come mai?

  7. #7
    Ma un bel ORDER BY nella select?!?!
    Perché fare le cose così come dovrebbero essere fatte quanto realizzare un obbrobrio non costa nulla?!
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  8. #8
    Utente di HTML.it L'avatar di ertos
    Registrato dal
    Nov 2005
    Messaggi
    448
    Quote Originariamente inviata da satifal Visualizza il messaggio
    Ma un bel ORDER BY nella select?!?!
    Perché fare le cose così come dovrebbero essere fatte quanto realizzare un obbrobrio non costa nulla?!
    Cioe non capisco, l'order di cosa? Il valore $cliente è un valore numerico, ci sono 2 tabelle (clienti - pratica) ad ogni pratica è associato un cliente

  9. #9
    Quote Originariamente inviata da ertos Visualizza il messaggio
    Cioe non capisco, l'order di cosa? Il valore $cliente è un valore numerico, ci sono 2 tabelle (clienti - pratica) ad ogni pratica è associato un cliente
    Magari facendo tutto con un'unica query in join:

    codice:
    SELECT p.id, p.cliente, p.data, c.cognome, c.ragione_sociale 
    FROM pratica p, clienti c 
    WHERE c.id = p.cliente AND ... 
    ORDER BY p.data DESC, c.cognome ASC
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  10. #10
    Utente di HTML.it L'avatar di kingpin
    Registrato dal
    May 2014
    residenza
    London, UK
    Messaggi
    30
    Quote Originariamente inviata da satifal Visualizza il messaggio
    Ma un bel ORDER BY nella select?!?!
    Perché fare le cose così come dovrebbero essere fatte quanto realizzare un obbrobrio non costa nulla?!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.