Lurifaksen Skrevet 14. januar 2004 Skrevet 14. januar 2004 (endret) eksempel: $array1 = array (1,2,3); $array2 = array (4,5,6); $array3 = array (7,8,9); $var = 1; Jeg vil lage en if setning som denne: if ($var finnes i $array1 { echo "array1"; } elseif ($var finnes i $array2 { echo "array2"; } elseif ($var finnes i $array3 { echo "array3"; } Hvordan? Det er altså hva jeg skal erstatte "finnes i $arrayN" med jeg trenger hjelp til... Endret 14. januar 2004 av GeeZuZz
Lurifaksen Skrevet 14. januar 2004 Forfatter Skrevet 14. januar 2004 Burde ikke dette funke? <?php $array1 = array (1, 2, 3); $array2 = array (4, 5, 6); $array3 = array (7, 8, 9); $var = "8"; if (in_array($var, $array1)) { echo "array1"; } if (in_array($var, $array2)) { echo "array2"; } if (in_array($var, $array2)) { echo "array3"; } ?> Jeg får bare en blank side (ingen feilmeldinger).
Loomy Skrevet 14. januar 2004 Skrevet 14. januar 2004 (endret) Nå er jeg ganske njub på akkurat dette her, men hva med å bytte ut de to siste if'ene med to elseif'er? Endret 14. januar 2004 av Loomy
Lurifaksen Skrevet 14. januar 2004 Forfatter Skrevet 14. januar 2004 Ingen forskjell. Skjønner ikke hvorfor mitt script fungerer, mens eksempelet i manualen fungerer: <?php $os = array("Mac", "NT", "Irix", "Linux"); if (in_array("Irix", $os)) { echo "Got Irix"; } if (in_array("mac", $os)) { echo "Got mac"; } ?> Jeg klarer ikke å finne forskjellen!
BlueEAGLE Skrevet 14. januar 2004 Skrevet 14. januar 2004 $DataArray=array( array1=>array(1,2,3) array2=>array(4,5,6) array3=>array(7,8,9)); $var=6; foreach($DataArray as $key=>$value){ if(in_array($var, $value)) echo $key, '<br />'; } echo 'Done!'; Jeg har ikke testet dette, men det virker mer naturlig å lage en løkke av det. Iallefall lage en styringsmatrise slik: $array1=>array(1,2,3) $array2=>array(4,5,6) $array3=>array(7,8,9)); $CombinedArray=array($array1, $array2, $array3); $var = 4; foreach($CombinedArray as $ThisArray=>$Data){ if(in_array($var, $Data)) echo $ThisArray, '<br />'; } echo 'Done!'; Hvis den ikke finner noe så vil den i alle tilfeller skrive "Done!"
BlueEAGLE Skrevet 14. januar 2004 Skrevet 14. januar 2004 <?php $array1 = array (1, 2, 3); <== Heltall! $array2 = array (4, 5, 6); <== Heltall! $array3 = array (7, 8, 9); <== Heltall! $var = "8"; <== Streng!!! Ikke sikker på om det er feilen da, i og med at en streng er et heltall er et desimaltall er en streng i PHP. Isåfall så ville jeg regnet det som en bug i PHP.
Lurifaksen Skrevet 14. januar 2004 Forfatter Skrevet 14. januar 2004 (endret) Uff, det der skjønte jeg ikke mye av... Altså opplegget er: Hvis brukeren har valgt en verdi som er i det første arrayet, skal en spesiel kodesnutt kjøres. Hvis han har valgt en verdi som er i det andre arrayet, skal en annen kodesnutt kjøres i stedet, hvis verdien er i den 3. skal en enda en annen kodesnutt kjøres i stedet. Det må da være mulig å få til på en veldig enkel måte som selv jeg forstår? (som den jeg skrev over f.eks) Edit: Du sier kanskje noe der. Jeg brukte tall som eksempel, selv om det egentlig dreier seg om en tekststreng. Så da kan det kanskje være det fungerer allikevel? Edit2: Prøvde det (rett over) nå, men det hjalp visst ikke om det var en tekststreng. Edit3: Mulig det gjorde det allikevel... Tror det var en annen feil i scriptet som gjorde det. Men jeg får ikke testet skikkelig. Grunnen til det er at scriptet jeg holder på med har vokst stort, uten at jeg har testet undeveis, og som regel gjør jeg haugevis av feil (glemmer ; etc.) før jeg får det til å funke, derfor er det litt vanskelig å gi et klart svar på om det funker, før jeg får rettet alle andre feil. Jeg poster selvsagt hvis jeg får det til å funke. Endret 14. januar 2004 av GeeZuZz
Lurifaksen Skrevet 15. januar 2004 Forfatter Skrevet 15. januar 2004 Det funket nok! Tusen takk for hjelpen!
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå