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

    Confronto tra due stringhe, estrapolare testo uguale

    Ciao a tutti, ho un piccolo dilemma che non mi è mai capitato.

    Avendo 2 stringhe:
    $pippo ="giallo, verde, nero, rosa";
    $pluto = "rosa azzurro quadrato tondo";

    vorrei quindi fare il confronto tra le due ed estrapolare in una nuova stringa solo quelle che sono uguali tra loro.

    Come posso farlo??? :master: :master:

    Grazie a tutti!
    Perchè uso Maxthon? | Mi piace questa chat

  2. #2
    non ho capito

    avendo le due variabili $pippo e $pluto indicate da te cosa vuoi ottenere?

  3. #3
    ho fatto un piccolo update,

    cmq vorrei ottenere solo le chiavi uguali tra loro, nel mio caso l'unico elemento uguale tra i due è "rosa".
    Perchè uso Maxthon? | Mi piace questa chat

  4. #4
    Se conosci i delimitatori che separano le parole nelle varie stringhe puoi utilizzare la funzione explode() per ottenere i vari token dalle due stringhe e poi confrontarli con dei cicli.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  5. #5
    Purtroppo non ho delimitatori, pensavo di fare tutto con un eregi()
    Perchè uso Maxthon? | Mi piace questa chat

  6. #6
    Dal codice che hai postato:

    Codice PHP:
    $pippo ="giallo, verde, nero, rosa";
    $pluto "rosa azzurro quadrato tondo"
    Se le stringhe sono sempre così già vanno bene. Anche lo spazio è un delimitatore.
    Per le stringhe da te postare puoi utilizzare l'explode() in questo modo:

    Codice PHP:
    $pippo ="giallo, verde, nero, rosa";
    $pluto "rosa azzurro quadrato tondo";

    $pi explode(", "$pippo);
    $pl explode(" "$pluto);

    foreach (
    $pi as $value) {
        echo 
    "$value
    "
    ;
    }

    foreach (
    $pl as $value) {
        echo 
    "$value
    "
    ;

    $pi e $pl saranno due array contenenti i token contenuti nelle stringhe.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  7. #7
    Ok grazie!

    Ma come faccio (sto impazzendo) a popolare la stringa $pippo da un ciclo while??

    Cioè, se faccio semplicemente

    while($row_tagarray = mysql_fetch_array($tuetag)){
    echo $row_tagarray['tag'] . ",";
    }

    ho la mia bella lista di tag printata a video, ma per mettere tutto questo risultato dentro una variabile?

    So che è una domanda stupida, pardon!
    Perchè uso Maxthon? | Mi piace questa chat

  8. #8
    Codice PHP:
    $pippo "";
    while (
    $row_tagarray mysql_fetch_array($tuetag)) {
       
    $pippo .= $row_tagarray['tag'].",";
    }
    $pippo substr($pippo0strlen($pippo) - 1); 
    L'ultima istruzione serve a rimuovere l'ultima virgola aggiunta nel ciclo while, altrimenti avresti una stringa del tipo "giallo,verde,nero,rosa,"
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  9. #9
    Metti tutte le tag in un array:
    Codice PHP:
    $lista = array();
    while(
    $row_tagarray mysql_fetch_array($tuetag)){
        
    $lista[] = $row_tagarray['tag'];

    per trovare i tag presenti anche in un'altra lista, usa array_intersect(), esempio:
    Codice PHP:
    $string1 "giallo, verde, nero, rosa";
    $string2 "rosa azzurro quadrato tondo";

    preg_match_all('/\b\w+\b/'$string1$array1);
    preg_match_all('/\b\w+\b/'$string2$array2);

    print_r(array_intersect($array2[0], $array1[0])); 

  10. #10
    Ho spulciato il manuale PHP per informazioni sulla funzione array_intersect e mi sembra la soluzione migliore.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

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.