Gå til innhold

Sjekke om $var er i et array?


Anbefalte innlegg

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 av GeeZuZz
Lenke til kommentar
Videoannonse
Annonse

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

Lenke til kommentar

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! :wallbash:

Lenke til kommentar

$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!"

Lenke til kommentar
<?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.

Lenke til kommentar

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) :cry:

 

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? :dribble:

 

Edit2: Prøvde det (rett over) nå, men det hjalp visst ikke om det var en tekststreng.

 

Edit3: Mulig det gjorde det allikevel... :p 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 av GeeZuZz
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...