Gå til innhold

In_array fungerer ikke etter hensikt


Anbefalte innlegg

$array_humor = file('../array/humor.txt');

if (in_array("Borte", $array_humor)) {
echo "jippi";
}

 

..array/humor.txt :

 

Opptatt

--------

Borte

På jobb

På skolen

--------

Allergisk

Avslappet

Boblende

Bitter

...osv

 

men dette funker ikke... tror noe av problemet er "På jobb" som har et mellomrom. Hva skjer egentlig her, og hvordan kan jeg få det til å ikke skje?

Lenke til kommentar
Videoannonse
Annonse

Array ( [0] => [1] => Opptatt [2] => -------- [3] => Borte [4] => På jobb [5] => På skolen [6] => -------- [7] => Allergisk [8] => Avslappet osv...

 

grunnen til at jeg tror på jobb og på skolen er årsaken til feilen her, er at om jeg tar bort de to, fungerer det perfekt...

Lenke til kommentar

kan jo hende linjeskift ligger i strengen, kan jo evt prøve å fjerne det..

 

eller du kan jo prøve med å traversere det... med no debug..

foreach ($array as $element) {

if ($element=="Borte")

echo "Jippi";

else

echo "'$element' matcher ikke<br>";

}

Lenke til kommentar

' ' matcher ikke

'Opptatt ' matcher ikke

'-------- ' matcher ikke

'Borte ' matcher ikke

 

osv... :(

 

edit: trim($element) fungerer!! jippi :D men lurer fremdeles på hva som skjedde med in_array...

Endret av fjartan
Lenke til kommentar

forklaringen er enkel:

 

hver linje i en tekstfil inneholder også et linjeskift!

 

"Borte" vil ikke gi match i din array fordi du har elementet "Borte\n" i arrayen. dvs Borte med en linjeskift etter. trim fjerner linjeskifter så ergo fungerer det da.

 

det beste er å beholde din tirm kode, msiden linjeskift kan være enten \r\n eller \n avhengig av platform.

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...