Avatar billede oomalkeoo Nybegynder
02. januar 2011 - 14:53 Der er 6 kommentarer og
1 løsning

in_array driller

Har et array der hedder $team, print_r($team); giver dette:

(
    [2] => Array
        (
            [id] => 2
            [team] => 1
        )

    [12] => Array
        (
            [id] => 12
            [team] => 1
        )

    [13] => Array
        (
            [id] => 13
            [team] => 1
        )

    [3] => Array
        (
            [id] => 3
            [team] => 1
        )

    [11] => Array
        (
            [id] => 11
            [team] => 1
        )

    [5] => Array
        (
            [id] => 5
            [team] => 2
        )

    [8] => Array
        (
            [id] => 8
            [team] => 2
        )

    [6] => Array
        (
            [id] => 6
            [team] => 2
        )

    [9] => Array
        (
            [id] => 9
            [team] => 2
        )

    [7] => Array
        (
            [id] => 7
            [team] => 2
        )

    [20] => Array
        (
            [id] => 20
            [team] => 3
        )

    [26] => Array
        (
            [id] => 26
            [team] => 3
        )

    [10] => Array
        (
            [id] => 10
            [team] => 3
        )

    [4] => Array
        (
            [id] => 4
            [team] => 25
        )

    [28] => Array
        (
            [id] => 28
            [team] => 666
        )

    [29] => Array
        (
            [id] => 29
            [team] => 666
        )

)

Når jeg så prøver på dette:

echo in_array(12, $agent);

-Så får jeg intet output, synes jeg har prøvet alt, men kan ikke forstå hvorfor det ikke virker? Fik een gang også denne fejl: Warning: in_array() [function.in-array]: Wrong datatype for second argument in

Kan nogle hjælpe?
Avatar billede Fnugus Nybegynder
02. januar 2011 - 15:00 #1
Syntaksen for in_array er

in_array(mixed $needle, array $haystack [, bool $strict]), og return typen er bool. Jeg er ikke helt klar på hvad den skriver hvis du forsøger at echo en bool, som kun kan have værdierne true eller false.

Som det ser ud, ud fra hvad du har skrevet hedder dit array $team.

Så hvis du søger efter værdien 12 i array skal det hedde

if(in_array(12,$team))  // alternativt if(in_array(12,$team) === true)
  echo "Findes!";
else
  echo "Fandtes ikke.";
Avatar billede Fnugus Nybegynder
02. januar 2011 - 15:03 #2
En anden ting, så jeg lige, er at du vistnok har et to-dimensionelt array, så hvis du vil finde et værdisæt skal du bruge et array som $needle.

FX:
$needle = array("id" => 12, "team" => 1);
if(in_array($needle,$team)) echo "True!";
Avatar billede Fnugus Nybegynder
02. januar 2011 - 15:07 #3
En ting mere:

Hvis du vil søge efter en key i et array i stedet for en værdi, skal du bruge array_key_exists(mixed $key, array $search);
Avatar billede oomalkeoo Nybegynder
02. januar 2011 - 15:09 #4
Mente $agent, og ikke $team som jeg selv skrev. Har to-dimensionelt vidst.. hver "id" indeholder faktisk 6 variabler.

Hvordan ville du lave det tjek så? Skal bare vide om selve array-id'et findes. Har også een af de 6 variabler der hedder id, som du kan se..

Hvordan ville du gøre det så?
Avatar billede oomalkeoo Nybegynder
02. januar 2011 - 15:09 #5
Jeg skal egentlig bare lave et tjek der giver true/false efter om $_GET['uid'] allerede findes i $agent.
Avatar billede Fnugus Nybegynder
02. januar 2011 - 15:11 #6
Det burde være forholdsvist nemt:

if(array_key_exists($_GET['uid'], $array))
{
  // Do stuff hvis den findes
}

byt $array ud med navnet på dit array
Avatar billede oomalkeoo Nybegynder
02. januar 2011 - 15:15 #7
Ser ud til at virke, mange tak for hjælpen!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester