Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    208

    [array] Ordinare array multidimensionale

    ho fatto già delle ricerche sul forum ma non ne sono venuto ancora a capo

    mi ritrovo un array multidimensionale del tipo

    Codice PHP:
    $lista[1][nome] = 'Valerio';
    $lista[1][cognome] = 'Bianchi';
    $lista[1][eta] = 18;
    $lista[1][...altri campi...] = ...;
    $lista[2][nome] = 'Antonio';
    $lista[2][cognome] = 'Rossi';
    $lista[2][eta] = 36;
    $lista[2][...altri campi...] = ...;
    $lista[3][nome] = 'Mario';
    $lista[3][cognome] = 'Verdi';
    $lista[3][eta] = 25;
    $lista[3][...altri campi...] = ...; 
    non sono riuscito ancora a capire tra le varie funzioni (sort, asort, usort, etc...) qual'è la più adatta per ordinare l'array in ordine crescente in base al capo "eta".
    Grazie per l'aiuto.

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    http://se2.php.net/manual/it/functio...-multisort.php
    Codice PHP:
    foreach($lista as $res)
    $eta[] = $res['eta'];
    array_multisort($eta,SORT_NUMERIC,$lista);
    echo 
    '<pre>';
    print_r($lista);
    echo 
    '</pre>'

  3. #3
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Ah,ricordati di usare gli apici per delimitare le chiavi dell'array
    $lista[1]['nome'] = 'Valerio';
    $lista[1]['cognome'] = 'Bianchi';
    ecc.

    se settassi l'error_reporting a e_all ti troveresti segnalati un sacco di notice di undefined constant nome_chiave.

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    208
    funziona, grazie.

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    208
    Originariamente inviato da nicola75ss
    se settassi l'error_reporting a e_all ti troveresti segnalati un sacco di notice di undefined constant nome_chiave.
    è solo questa la controindicazione?

  6. #6
    Originariamente inviato da Mixio
    è solo questa la controindicazione?
    la controindicazione è che ciò che fai è SBAGLIATO, ma il php prova a porre rimedio, rimedio che se ti va di culo funziona, ma potrebbe non farlo, quindi correggi l'errore.

  7. #7
    Io ho un problema simile, ma un po più complesso
    Il codice fornito come soluzione ordina in base ad un solo campo.

    Ma se io volessi ordinare gli utenti in base all'età, ed a parità di età in base al cognome, e quindi in base al nome???

    Ho visto che esiste una funzione array_multisort, ma non riesco ad utilizzarla in maniera corretta.

    Come è possibile fare questo tipo di ordinamento???


    Help! Please...

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.