Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505

    Problema di logica per l'ordinamento di un array

    Ho un array di 3 elementi, gli elementi possibili sono delle stringhe fatte così:
    timestamp_immagine1.jpg
    timestamp_immagine2.jpg
    timestamp_immagine3.jpg
    NOIMAGE

    timestamp è il timestamp effettivo in cui l'immagine è stata ricevuta (ma è lo stesso per tutti i file impostati, arrivano in gruppo), NOIMAGE ha uno spazio all'inizio e alla fine.

    Io ho bisogno che comunque arrivino i dati, nelle prime posizioni ci siano i nomi dei file ordinati in ordine alfanumerico crescente e poi eventuali NOIMAGE.

    Ad esempio se si ricevono due immagini (timestamp_immagine1.jpg e timestamp_immagine3.jpg) l'array che ricevo è composto così:

    timestamp_immagine1.jpg
    NOIMAGE
    timestamp_immagine3.jpg

    alla fine vorrei ottenere:
    timestamp_immagine1.jpg
    timestamp_immagine3.jpg
    NOIMAGE

    Come organizzo l'ordinamento?

  2. #2
    gli devi assegnare le chiavi numeriche
    [0]
    [1]
    [2]
    in ordine di visualizzazione..
    Anthares80

  3. #3
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    mah, la chiave numerica c'è sempre, l'array è così:

    [0] -> timestamp_immagine1.jpg
    [1] -> NOIMAGE
    [2] -> timestamp_immagine3.jpg

    quindi?

  4. #4
    Se utilizzi la funzione sort() ?
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  5. #5
    ciao se puoi
    mostrami il codice riferito agli array che hai scritto
    Anthares80

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Non me li mette in ordine, perché lo spazio all'inizio dei NOIMAGE me li fa mettere nelle prime posizioni dell'array, se uso rsort invece me li mette alla fine, ma mi ordina in modo inverso i nomi dei file.

  7. #7
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Originariamente inviato da Alhazred
    Non me li mette in ordine, perché lo spazio all'inizio dei NOIMAGE me li fa mettere nelle prime posizioni dell'array, se uso rsort invece me li mette alla fine, ma mi ordina in modo inverso i nomi dei file.
    Scrivere questa cosa mi ha fatto venire in mente la soluzione:
    faccio un trim sulle stringhe, così i NOIMAGE non hanno spazi, ordino l'array con sort() e rimetto gli spazi quando pesco un NOIMAGE dall'array nel momento dell'utilizzo.

  8. #8
    Originariamente inviato da Alhazred
    Non me li mette in ordine, perché lo spazio all'inizio dei NOIMAGE me li fa mettere nelle prime posizioni dell'array, se uso rsort invece me li mette alla fine, ma mi ordina in modo inverso i nomi dei file.
    Hai ragione, non avevo considerato la spazio prima della stringa NOIMAGE. A questo punto l'unica è ordinarli a codice. Magari utilizzi sort() per un primo ordinamento dell'array. A questo punto hai tutti i NOIMAGE in testa ed i nomi dei file in coda ordinati, quindi puoi eliminare tutti i NOIMAGE e spostarli alla fine.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  9. #9
    Originariamente inviato da Alhazred
    Scrivere questa cosa mi ha fatto venire in mente la soluzione:
    faccio un trim sulle stringhe, così i NOIMAGE non hanno spazi, ordino l'array con sort() e rimetto gli spazi quando pesco un NOIMAGE dall'array nel momento dell'utilizzo.
    Anche.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  10. #10
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,346
    Puoi sempre usare uksort e definire tu l'ordinamento. Altrimenti gioca cn lo spazio e lo sostituisci oppure prova cn natsort.
    Per gli Spartani e Sparta usa spartan Il mio github

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.