Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: Ordinare Array

  1. #1

    Ordinare Array

    Ciao

    Come tutti quelli che scrivono in questo forum, anche io ho un problema; ho due array, la prima contiene l'età dei componenti della famiglia, la seconda indica il costo della vacanza per ogni persona. Es:



    Codice PHP:
    Età partecipanti: Array ( [0] => 40 [1] => 30 [2] => [3] => 14 
    Codice PHP:
    Costo: Array ( [0] => 640 [1] => 516 [2] => 200 [3] => 350
    Ho bisogno che le array vengano ordinate in base all'età, ma in modo particolare, ossia:

    Le età maggiori di 20 vanno ordinate in modo crescente all'inizio dell'array
    Le età minori o uguali a 20 vanno ordinate in modo decrescente e posizionate successivamente
    Gli indici dell'array costo devono corrispondere

    Ecco come dovrebbe risultare:

    Codice PHP:
    Età partecipanti: Array ( [0] => 30 [1] => 40 [2] => 14 [3] => 
    Codice PHP:
    Costo: Array ( [0] => 516 [1] => 640 [2] => 350 [3] => 200
    Avete idea su come fare?

    Ciao e grazie,

    Edoardo

  2. #2

  3. #3
    Grazie, ma in quel modo ordino una sola array, come faccio a fare in modo che la seconda conservi la corrispondenza dei valori?

  4. #4
    Crei un unico array contenente entrambi i valori associati e poi esegui l'ordinamento su questo array.

  5. #5
    Come dicevo devo ordinare in modo differente i valori, i maggiorenni in modo crescente, minorenni decrescenti

    Pensavo più ad un ciclo, ma non riesco a cavare un ragno da buco

  6. #6
    A me usort() funziona perfettamente:

    Codice PHP:
    <?php 
    $array 
    = array(4143040);

    function 
    cmp($a$b) {
        if (
    $a == $b) {
           return 
    0;
        } elseif ((
    $a 20) && ($b 20)) {
            return (
    $a $b) ? -1;
        } elseif ((
    $a 20) && ($b 20)) {
            return (
    $a $b) ? -1;
        } elseif (
    $a 20) {
            return -
    1;
        } else {
            return 
    1;
        }
    }

    usort($array"cmp");

    print_r($array);
    ?>

  7. #7
    Grazie dell'attenzione

    Come posso fare in modo che la seconda array rispecchi i costi in base all'età, senza unirla?

  8. #8
    Perchè non vuoi seguire il suggerimento che ti ho dato?

  9. #9
    Perchè in realtà questo è solo un pezzo di una macchina più complessa, le due array sono influenzate da altri fattori e ne influenzano altri ancora. Unirle mi bloccherebbe tutto

  10. #10
    Ovviamente apprezzo molto il tuo aiuto e il tempo che mi stai dedicando, sia chiaro

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.