Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    sfogliare un array multidimensionale in sottogruppi

    Ciao a tutti.
    Ho un array con questa struttura:

    array (

    [0] => array(
    [cat] => Categoria 01
    [nome] => Paolo
    [cognome] => Rossi
    )

    [1] => array(
    [cat] => Categoria 02
    [nome] => Roberto
    [cognome] => Bianchi
    )

    [2] => array(
    [cat] => Categoria 01
    [nome] => Carlo
    [cognome] => Verdi
    )

    [3] => array(
    [cat] => Categoria 02
    [nome] => Luigi
    [cognome] => Neri
    )

    )

    e vorrei riuscire a recuperare e stampare i dati in questa maniera.

    Categoria 01
    - Paolo Rossi
    - Carlo Verdi

    Categoria 02
    - Roberto Bianchi
    - Luigi Neri

    Sapete come diavolo fare?
    Io ne sto uscendo pazzo...

    grazie!

  2. #2
    Come spunto di partenza:

    Codice PHP:
    <?php
    function catOrder($a$b) {
      return 
    strcmp($a["cat"], $b["cat"]);
    }

    $arr = array(
        
    => array('cat' => 'Categoria 01''nome' => 'Paolo''cognome' => 'Rossi'),
        
    => array('cat' => 'Categoria 02''nome' => 'Roberto''cognome' => 'Bianchi'),
        
    => array('cat' => 'Categoria 01''nome' => 'Carlo''cognome' => 'Verdi'),
        
    => array('cat' => 'Categoria 02''nome' => 'Luigi''cognome' => 'Neri'),
    );

    usort($arr"catOrder");

    foreach (
    $arr as $key => $value) {
        if (
    $cat != $value['cat']) {
            
    $cat $value['cat'];
            echo 
    "
    "
    .$cat."
    "
    ;
        }
        echo 
    "- ".$value['nome']." ".$value['cognome'] ."
    "
    ;
    }
    ?>
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    grazie mille... funziona molto bene.
    Ho un dubbio però sulla funzione usort.
    Non riesco a capire il suo flusso, ovvero che elementi dell'array manda alla funzione catOrder. Infatti questa funzione paragona 2 elementi, ma non capisco quali:
    array[0] con array [1], poi array[0] con array [2] ecc...?

    grazie ancora!

  4. #4
    non so quale algoritmo di ordinamento usi usort, il manuale non lo indica.. se vuoi sapere il flusso fatti fare un echo nella funzione catOrder per vedere l'ordine degli elementi che prende.
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

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.