Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1

    Dividere una stringa in un array con un pattern

    Ciao ragazzi avevo bisogno di fare una cosa particolare data una stringa non omogenea del tipo:

    $stringa = 'ciao1234'

    io vorrei che mi ritornasse un array del tipo

    $arrayStringa[0] = 'ciao'
    $arrayStringa[1] = '1234'

    dividere la stringa in base ad un pattern omogeneo quindi intendo un pattern di soli caratteri,uno di soli numeri ed uno di caratteri speciali...quindi mettendo il caso di incontrare una stringa del tipo:

    $stringa = 'Lilo&Stitch2 La vendetta'

    mi ritornasse un array:

    $arrayStringa[0] = 'Lilo'
    $arrayStringa[1] = '&'
    $arrayStringa[2] = 'Stitch'
    $arrayStringa[3] = '2'
    $arrayStringa[4] = 'La'
    $arrayStringa[5] = 'vendetta'

    secondo voi come è possibile fare una cosa del genere? non credo che la funzione explode accetti dei pattern...Potete aiutarmi?
    Grazie mille anticipatamente..

  2. #2
    c'è la funzione explode però non fa proprio al caso tuo

    $var='Ciao Come Stai ?';

    $arr=explode(" ",$var);

    print_r($arr);

    $arr[0] Ciao
    $Arr[1] Come
    ....

    e cosi via.

  3. #3
    codice:
    $stringa = 'Lilo&Stitch2 La vendetta';
    
    // cerca sequenze di caratteri, sequenze di numeri
    // e sequenze di cio' che rimane e non e' un whitespace
    preg_match_all('/([a-z]+|\d+|\S*?)/i', $stringa, $match);
    
    // elimina i match vuoti
    $result = array_filter($match[1]);
    
    // reindicizza l'array
    $result = array_values($result);
    
    // profit
    print_r($result);

  4. #4
    Guarda sono davvero inesperto posto solo per dirti di una reminescenza che ho riguardo agli array, penso che il tuo scopo possa essere raggiunto attraverso i record sql e non tramite php.

    forse è una mi****ata...

  5. #5
    Originariamente inviato da TryAgain
    Guarda sono davvero inesperto posto solo per dirti di una reminescenza che ho riguardo agli array, penso che il tuo scopo possa essere raggiunto attraverso i record sql e non tramite php.

    forse è una mi****ata...
    In effetti lo e'

    Perche' rispondere se non si ha la minima idea di cio' che si sta dicendo? Una risposta buttata li' a caso non e' di grande aiuto per chi deve risolvere un problema.

  6. #6
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    ma non basta un preg_split?

  7. #7
    Originariamente inviato da bubi1
    ma non basta un preg_split?
    Con che pattern?

  8. #8
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    Originariamente inviato da k.b
    Con che pattern?
    dovrebbe andare bene anche il tuo


    edit: si, va bene: var_dump(preg_split("/([a-z]+|\d+|\S*?)/i","Lilo&Stitch2 La vendetta",0,1|2));

  9. #9
    Hai ragione non ci avevo pensato

  10. #10
    Grazie mille delle risposte!!!!!!!!!!!!!!!!!!!

    Siete favolosi!

    ho usato il codice di KB
    Codice PHP:
    $stringa 'Lilo&Stitch2 La vendetta';

    // cerca sequenze di caratteri, sequenze di numeri
    // e sequenze di cio' che rimane e non e' un whitespace
    preg_match_all('/([a-z]+|\d+|\S*?)/i'$stringa$match);

    // elimina i match vuoti
    $result array_filter($match[1]);

    // reindicizza l'array
    $result array_values($result);

    // profit
    print_r($result); 
    Funziona benissimo però se volessi mettere insieme anche gruppi di caratteri speciali avendo quindi una stringa del tipo:

    $stringa = 'Lilo&Stitch2 La vendetta!!!??';

    Vorrei uscisse fuori:

    Array ( [0] => Lilo [1] => & [2] => Stitch [3] => 2 [4] => La [5] => vendetta [6] => !!!?? )

    come dovrei modificare il pattern?
    Grazie anticipatamente!!

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.