Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,746

    [array] riordinare i valori

    mi spiego subito con un esempio, ho un array di questo tipo

    codice:
    Array
    (
        [2] => 0
        [1] => 1
        [5] => 5
        [6] => 9
        [7] => 14
    )
    i valori sono sempre numerici e vorrei ottenere questo risultato

    codice:
    Array
    (
        [2] => 1
        [1] => 2
        [5] => 3
        [6] => 4
        [7] => 5
    )
    ...ossia, qualsiasi siano i valori, ottenere sempre una sequenza numerica ordinata progressivamente da 1 in poi.

    C'è qualche funzione che mi può aiutare e che non ho ancora trovato o quale metodo mi consigliate per risolvere in modo elegante e pulito?

    grazie
    Errare humanum est, perseverare ovest

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    324
    Ho la sindrome di Peter Pan, le manie di persecuzione...se sapessi suonare uno strumento sicuramente avrei anche un complesso.

  3. #3
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,746
    Grazie, ma non hai letto bene cosa mi serviva.

    sort() ordina l'array disponendo i valori dal più piccolo al più grande ma cambia gli indici.

    se ho

    codice:
    Array
    (
        [2] => 0
        [1] => 1
        [5] => 5
        [6] => 9
        [7] => 14
    )
    con sort() ottengo

    codice:
    Array
    (
        [0] => 0
        [1] => 1
        [2] => 5
        [3] => 9
        [4] => 14
    )
    invece a me serve ottenere

    codice:
    Array
    (
        [2] => 1
        [1] => 2
        [5] => 3
        [6] => 4
        [7] => 5
    )
    gli indici rimangono invariati, devo cambiare i valori.
    Errare humanum est, perseverare ovest

  4. #4
    Utente di HTML.it L'avatar di moonba
    Registrato dal
    Jun 2007
    Messaggi
    649

    ..

    forse cercavi questa:
    codice:
    $array = array (2 =>0,1=>1,5=>5,6=>9,7=>14);
     natsort($array);
     print_r($array);//restituisce Array ( [2] => 0 [1] => 1 [5] => 5 [6] => 9 [7] => 14 )

  5. #5
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,746
    Ho risolto così

    Codice PHP:
    asort($array_posizioni) ;

    $valore ;

    foreach( 
    $array_posizioni as $id_immagine => $posizione ) {

                  
    $array[$id_immagine] = $valore++ ;
           
            } 
    Errare humanum est, perseverare ovest

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.