Gå til innhold

preg_replace string


Anbefalte innlegg

Jeg har følgende kode:

$var1 = "SVHUM C1002";
$var2 = "C 1002 Aud";

$array = explode(" ", $var1);
for ($i = 0; $i < count($array); $i++) {
   $var2 = preg_replace("/(".$array[$i].")/is", "", $var2);
}

return $var1." ".$var2;

Resultat: "SVHUM C1002 C 1002 Aud"

 

Ønsket resultat: "SVHUM C1002 Aud"

 

Noen ideer?

Endret av xibriz
Lenke til kommentar
Videoannonse
Annonse

For det første når du skal loope igjennom en array bruk foreach i stedet for for.

 

Det ser ut som str_replace() er mer hva du er på jakt etter. Men du er nødt til å utdype hva du faktisk ønsker å oppnå. Vil du fjerne ting fra $var2 som finnes i $var1? Det er en forskjell på "C1002" og "C 1002" så det kan ikke sammenlignes direkte.

Lenke til kommentar

Ja, jeg vil fjerne ting fra $var2 som finnes i $var1. Mennesket kan se at "C1002" er det samme som "C 1002".

 

Min foreløpige løsning som oppnår det jeg vil er nå:

$var1 = "SVHUM C1002";
$var2 = "C 1002 Aud";

$array = explode(" ", $var1);
foreach ($array as $var) {
   $var2 = preg_replace("/(".join('(\\s+)?' , str_split ($var)).")/is", "", $var2);
}

return $var1." ".$var2;
Endret av xibriz
Lenke til kommentar

Mennesket kan se at "C1002" er det samme som "C 1002".

Det er ikke det samme, mellomrommet er ganske vesentlig. Hva hvis $var2 = "C 10 02 Aud" eller ="C 1 0 02 Aud", er det fremdeles å anse som det samme?

Å kode for ett gitt eksempel å få ut ønsket resultat er en ting, men jeg regner med at du skal bruke dette til noe mer spesifikt? Og at verdiene i $var1 og $var2 vil da være forskjellig fra gang til gang? Og strengene du ønsker å fjerne kan variere?

Lenke til kommentar

Ja, jeg har en lang liste med rom, der $var1 er navnet på rommet og $var2 er beskrivelsen på rommet.

 

Jeg prøver å lage en funksjon som returnerer navnet på rommet som en kombinasjon av disse to variablene.

 

Problemet er at informasjon som finnes i $var1 (navn) ofte gjengis i $var2 (beskrivelse). For at resultatet skal se mest mulig pent ut er det en idè å fjerne informasjon fra $var2 som allerede fremkommer av $var1.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...