Visualizzazione risultati 1 fino 16 di 16

Discussione: Array di una stringa

  1. #1
    Guest

    Post Array di una stringa

    Salve,
    vorrei sapere come creare un array da questa stringa :

    arg1=provaprova,arg2=ciao,prova

    Vorrei questo risultato :

    Codice HTML:
    [arg1] => 'provaprova'
    [arg2] => 'ciao,prova'
    Ho tentato con preg_split abbinando qualche pattern ma non funziona...

    Grazie in anticipo.

  2. #2
    L'avatar di matt93
    matt93 non è connesso Utente
    Data registrazione
    01-09-2008
    Messaggi
    241

    Predefinito

    Codice PHP:
    $txt="arg1=ok,arg2=no"; // Input

    function getarguments($text){
    $result=array();
    $arg=explode(",", $text);
    foreach(
    $arg as $ar){
    $a=explode("=",$ar);
    $result[$a[0]]=$a[1];
    }
    return
    $result;
    }

    $risultato=getarguments($txt);
    print_r($risultato);
    ecco, lo ho fatto velocemente perchè devo andare a scuola comunque dovrebbe andare bene....

  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da svacant Visualizza messaggio
    Salve,
    vorrei sapere come creare un array da questa stringa :

    arg1=provaprova,arg2=ciao,prova

    Vorrei questo risultato :

    Codice HTML:
    [arg1] => 'provaprova'
    [arg2] => 'ciao,prova'
    Ho tentato con preg_split abbinando qualche pattern ma non funziona...

    Grazie in anticipo.
    Difficile, visto che il carattere con cui separi i vari elementi può essere contenuto negli elementi stessi.


    Ciao!

  4. #4
    Guest

    Predefinito

    @Matt93= Grazie ma come dice debug l'elemento con cui separo l'array è contenuto negli elementi stessi.

    Ho letto qualcosa sui pattern, però mi mozza la prima lettera.

  5. #5
    Guest

    Predefinito

    Se non adotti un'altro carattere per separare i vari elementi, non potrai mai avere la certezza che la cosa funzioni, anche trovando l'espressione regolare azzeccata.


    Ciaoooo!!!

  6. #6
    Guest

    Predefinito

    Così:
    Codice PHP:
    $txt="arg1=ok,arg2=no"; // Input

    function getarguments($text,$c1,$c2){
    $result=array();
    $arg=explode($c1, $text);
    foreach(
    $arg as $ar){
    $a=explode($c2,$ar);
    $result[$a[0]]=$a[1];
    }
    return
    $result;
    }

    $risultato=getarguments($txt,",","=");
    print_r($risultato);
    non dovrebbe essere corretta? Perchè vengono passati come argomenti i caratteri
    Ultima modifica di gabryhacker : 09-12-2008 alle ore 14.55.39

  7. #7
    Guest

    Predefinito

    Guarda bene l'esempio nel primo post...


    ciao!

  8. #8
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Codice PHP:
    preg_match_all('/(\w+?)=(.+?)(?=(,\w+=|$))/', $s, $matches, PREG_SET_ORDER);
    Chiave e valore li trovi nei sottoelementi 1 e 2 di ogni elemento di $matches. Ho supposto che le chiavi contengano solo valori alfanumerici + underscore.

    L'assegno sai dove mandarlo.
    Ultima modifica di saitfainder : 09-12-2008 alle ore 15.27.20


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  9. #9
    Guest

    Predefinito

    Prova con questa stringa:
    Codice PHP:
    $s='arg1=p,r,o=,ac,vaprova,arg2=ciao,prova';



    Ciaoo!!

  10. #10
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Maledetto! Ma... che problema c'è?

    Codice:
    Array
    (
        [0] => Array
            (
                [0] => arg1=p,r
                [1] => arg1
                [2] => p,r
                [3] => ,o=
            )
    
        [1] => Array
            (
                [0] => o=,ac,vaprova
                [1] => o
                [2] => ,ac,vaprova
                [3] => ,arg2=
            )
    
        [2] => Array
            (
                [0] => arg2=ciao,prova
                [1] => arg2
                [2] => ciao,prova
                [3] =>
            )
    )
    Giusto, no?
    Ultima modifica di saitfainder : 09-12-2008 alle ore 16.04.17


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  11. #11
    Guest

    Predefinito

    No: io ho solo due elementi, uno contiene 'p,r,o=,ac,vaprova' e l'altro contiene 'ciao,prova'

    Ecco il significato del mio post 5


    Ciao!

  12. #12
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Ho premesso:

    Ho supposto che le chiavi contengano solo valori alfanumerici + underscore.
    Poi bisognerà sentire svacant


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  13. #13
    Guest

    Predefinito

    Appunto, le chiavi sono arg1 e arg2 :D

    PS: l'underscore dov'è indicato nella reg?


    Ciao!
    Ultima modifica di debug : 09-12-2008 alle ore 16.13.37

  14. #14
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Citazione Originalmente inviato da debug Visualizza messaggio
    Appunto, le chiavi sono arg1 e arg2 :D
    Mi ha fregato l'uguale

    PS: l'underscore dov'è indicato nella reg?
    debug, mi deludi...

    Codice:
    \w = [a-zA-Z0-9_]


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  15. #15
    Guest

    Predefinito

    eh... non mi ricordavo che era incluso nella \w

    mi perdoni?



    Ciaoooo!!!!

  16. #16
    Guest

    Predefinito

    Forse questo può aiutarvi a capire meglio


    type=button,onclick=send_data('ok','prova')

    Vi ricorda qualcosa?

    Il risultato sarà

    type=button onclick=send_data('ok','prova')

    Ecco perché :P adesso provo sait ^^


    Edit: Perfetto è andata ho messo un foreach e mi son estratto il tutto :D grazie Sait dammi l'iban!
    Ultima modifica di svacant : 09-12-2008 alle ore 16.48.31

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •