Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it L'avatar di ade_v
    Registrato dal
    Jan 2001
    Messaggi
    459

    [PHP] ordinamento di un array multidimensionale

    Ho un array multidimensionale da ordinare e mandare a video. L'array va ordinato per la seconda chiave (quella in cui valori sono 506,500,503,501). Come posso fare ?
    Qui sotto riporto il print_r dell'array.

    Grazie anticipatamente a chiunque mi dia un mano




    Array
    (
    [0] => Array
    (
    [506] => Array
    (
    [0] => 1
    [1] => PIPPO
    )

    )

    [1] => Array
    (
    [500] => Array
    (
    [0] => 19
    [1] => PLUTO
    )

    )

    [2] => Array
    (
    [503] => Array
    (
    [0] => 60
    [1] => PAPERINO
    )

    )

    [3] => Array
    (
    [501] => Array
    (
    [0] => 2
    [1] => PAPEROGA
    )

    )
    )
    ade_v@yahoo.it

    Fletto i muscoli e sono nel vuoto

    Se inviate messaggi privati, avvisatemi sul forum...

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Codice PHP:
    $chiavi = array();
    foreach(
    $array as $elm)
        foreach(
    $elm as $k => $v) {
            
    $chiavi[] = $k;
        }

    array_multisort($chiavi,SORT_DESC,$array);
    print_r($array); 

  3. #3
    Utente di HTML.it L'avatar di ade_v
    Registrato dal
    Jan 2001
    Messaggi
    459
    Non ci ho capito granchè. Per esempio il mio array è $AR, ma $elm, $k, $v cosa sono esattamente? io non ho altro che $AR.
    ade_v@yahoo.it

    Fletto i muscoli e sono nel vuoto

    Se inviate messaggi privati, avvisatemi sul forum...

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Originariamente inviato da ade_v
    Non ci ho capito granchè. Per esempio il mio array è $AR, ma $elm, $k, $v cosa sono esattamente? io non ho altro che $AR.
    Codice PHP:
    $chiavi = array();
    foreach(
    $AR as $elm)
        foreach(
    $elm as $k => $v) {
            
    $chiavi[] = $k;
        }

    array_multisort($chiavi,SORT_DESC,$AR);
    print_r($AR); 
    Vedi se funziona.

  5. #5
    Utente di HTML.it L'avatar di ade_v
    Registrato dal
    Jan 2001
    Messaggi
    459
    Funziona, eccome. grazie
    ade_v@yahoo.it

    Fletto i muscoli e sono nel vuoto

    Se inviate messaggi privati, avvisatemi sul forum...

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Originariamente inviato da ade_v
    Non ci ho capito granchè. Per esempio il mio array è $AR, ma $elm, $k, $v cosa sono esattamente? io non ho altro che $AR.
    Dovresti vederti la sintassi del foreach.
    Sono nomi arbitrari che ho dato io.

    $elm è a sua volta un array.
    $k indica le chiavi e $v i valori.

    Con il doppio ciclo creo un array in cui inserisco i valori 500,501 eccetera e poi con array multisort lo ordino in base a quei valori.

  7. #7
    Utente di HTML.it L'avatar di ade_v
    Registrato dal
    Jan 2001
    Messaggi
    459
    ... e se volessi fare una echo di questi valori in modo da avere:

    0 - 1 - PIPPO
    500 -19 - PLUTO
    501 - 2 - PAPEROGA
    etc... ?
    ade_v@yahoo.it

    Fletto i muscoli e sono nel vuoto

    Se inviate messaggi privati, avvisatemi sul forum...

  8. #8
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Codice PHP:
    foreach($AR as $elm)
        foreach(
    $elm as $k => $v) {
            
    $valori implode('-',$v);
                echo 
    $k.' '$valori'
    '
    ;
        } 

  9. #9
    Utente di HTML.it L'avatar di ade_v
    Registrato dal
    Jan 2001
    Messaggi
    459
    grazie, davvero. mi hai salvato da un empasse che durava da stamattina
    ade_v@yahoo.it

    Fletto i muscoli e sono nel vuoto

    Se inviate messaggi privati, avvisatemi sul forum...

  10. #10
    E se volessi ordinare un multiarray in base ad un numero decrescente? E' possibile farlo?

    Praticamente voglio stampare le domande ottenute dal db seguendo un ordine decrescente dei tags associati ad esse.
    Quindi:

    Id Domanda Numero Tags

    1 Testo Domanda 6

    Id Domanda Numero Tags

    2 Testo Domanda 5

    Id Domanda Numero Tags

    1 Testo Domanda 4

    e via di seguito.

    Questo è quello che sono riuscito a fare fin ora....



    Codice PHP:
    $q2=mysql_query("SELECT * from quizzledomande");  if (!$q2) {     $message  'Invalid query: ' mysql_error() . "\n";     $message .= 'Whole query: ' $q2;     die($message); }     $arraydomande=array(); $arraytag=array();     while($row2=mysql_fetch_assoc($q2)) { $arraydomande $row2['testo']; $arraytagassociati $row2['tag']; $arrayid $row2['id'];  //esplosione array di tags $explode=explode(" ",$arraytagassociati);   //conto i campi contenuti nell'array esploso. $conta = array(count($explode));  $ar=array("id" => $arrayid, "domande" => $arraydomande, "numerotag" => $conta, "tag" => $explode); print_r ($ar);   } 
    Come potete vedere, per contare il numero di tag ho "esploso" la colonna rimuovendo gli spazi bianchi. (La colonna era formata in questo modo: "For Ciclo Condizione Istruzione".)

    Ora: una volta ottenuto questo multiarray, come posso ordinarlo?

    Vi ringrazio per il vostro prezioso aiuto!

    Grazie.
    Andre

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.