• User

    Ciao,
    Io avrei risolto provando a partire dalla fine:hai 4 caratteri standard sempre presenti alla fine(".jpg" o anche se fsse ".png" sempre 4). dal quinto carattere in poi partendo dalla fine hai le tue cifre.
    [php]$temp = substr( $file_name,0,(strlen($filename)-4) );[/php]Cosi dovresti avere in $temp il nome meno l'estensione. Ora, visto che tra il numero file e il resto c'è l'underscore sfrutti l'explode come hai fatto
    [php]$temp = explode("_",$temp);[/php]e prendi il risultato
    [php]$temp = $temp[(count($temp)-1)];[/php]


  • User Attivo

    Se sono tutte immagini con estensione jpg, potresti rovesciare i nomi del file con strrev ed inserirli in un array. Poi ordini l'array in ordine alfanumerico e alla fine rovesci di nuovo i nomi dei file.

    Ti torna?


  • ModSenior

    @olaola said:

    Se sono tutte immagini con estensione jpg, potresti rovesciare i nomi del file con strrev ed inserirli in un array. Poi ordini l'array in ordine alfanumerico e alla fine rovesci di nuovo i nomi dei file.

    Ti torna?

    però se i file sono

    1.jpg
    11.jpg
    2.jpg

    mi sa che non li ordina bene


  • User Attivo

    @Thedarkita said:

    però se i file sono

    1.jpg
    11.jpg
    2.jpg

    mi sa che non li ordina bene

    ehm, hai azzecato in pieno. Avevo provato a fare così, però non li ordina bene... qualche suggerimento?


  • User Attivo

    Ops, avete ragione 😉

    Inverter, mi sembra che la soluzione che tu hai proposto per prima debba funzionare.

    Cosa ottieni stampando a video il contenuto di $image prima e dopo il riordinamento?

    Come fai a scrivere il contenuto dell'array?

    :gthi:


  • User Attivo

    mm si, anche secondo me dovrebbe funzionare la prima soluzione.

    Facciamo una cosa, domani mattina ci lavoro e soprattutto riordino il codice che praticamente non capisco più neanche io.

    Grazie mille, vi faccio sapere


  • User Attivo

    ok, sono riuscito ad orsinare le immagini, ma mi sorge un dubbio:

    qualora io dovessi cancellare un immagine, non avrei più un indice dell'array consecutivo, bensì rischierei di avere un indice come, per esempio, 1,2,3,4,9,12.

    Perciò, se, sempre per esempio, io sto visualizzando l'immagine che ha un indice 9 come faccio a sapere quale è l'id della foto precedente e quale quello della foto successiva?


  • ModSenior

    beh l'array viene modificato quindi indice 4 dell'array ha 9 come valore... tu prendi l'indice 3 che ha valore 7 per esempio, e usi quello


  • User Attivo

    mmm.. fose sto completamente sbagliando io.

    Ricapitolo un pò la situazione:

    1. ho delle immagini in una cartella chiamate "1_x_y.jpg", "2_b_z_d.jpg" eccetera (ho cambiato la posizione del numero per comodità nel fare l'explode)
    2. queste immagini devono essere ordinate in modo decrescente rispetto al numero presente nel nome dell'immagine.
    3. il sistema deve essere il più elastico possibile, nel senso che se volessi eliminare una foto vorrei poterlo fare senza dover modificare un eventuale codice (ma questo mi sembra ovvio dato che il php è fatto per questo :D)

    tutto qui... scusate, sono io che sto complicando il problema che in realtà è più semplice di quello che sembra

    Grazie mille!:)


  • ModSenior

    allora tu ha l'array cosi

    indice - valore
    0 - 1
    1 - 2
    2 - 3
    3 - 4
    4 - 5
    ecc

    togli l'immagine 3 e l'array diventa cosi:
    0 - 1
    1 - 2
    2 - 4
    3 - 5
    ecc

    se sei sull'immagine 4, che ha indice 2 è sufficiente prendere il valore dell'indice precedente, e ottieni l'immagine precedente...


  • User Attivo

    eh, ma al momento io per ordinare le foto utilizzo come indice il numero che c'è nella immagine... quindi nel caso io ne elimini una l'indice ha un buco...


  • ModSenior

    potresti controllare ke l'indice precendente sia settato, se p settato allora è quella l'immagine precendente, altrimenti scorri tutto l'array all'indietro alla ricerca del indice precedente... oltre questo non mi viene nulla in mente


  • User Attivo

    stavo pensando che forse potrei creare un array multidimensionale in cui:
    in un indice inserisco il normale indice 1 2 3 4 e via dicendo (creato dinamicamente così che di ricostruisca anche in caso elimini una foto).
    nell'altro indice inserisco il numero che metto nella immagine (uppure anche la data di creazione presa con filemtime).

    Il problema sarevbbe ordinare questo array 😮