[php] in_array, merkwaardig

Pagina: 1
Acties:

  • Skinkie
  • Registratie: Juni 2001
  • Laatst online: 09-06-2020

Skinkie

Op naar de 500

Topicstarter
ben een taal systeempje aan het maken... maar van dit probleem begrijp ik echt helemaal nix, kan iemand een hint geven wat hier fout gaat?

herziening:
PHP:
1
<?function checkitem($lang, $item){    include("./functions/taal.php");     if (in_array($item,$langitems["$lang"]["menu"]))==False)    {        $result=$langitems["$lang"]["menu"][7];    }    else    {        $result=$item;    }    return $result;}?>

ik krijg uit dit stukje code in feite dat elk item willekeurig, even als onzin items altijd true.
Het uiteindelijke doel is $langitems["$lang"]["menu"][7] terug te geven als het item niet voorkomt in array $langitems["$lang"]["menu"].

Steun Elkaar, Kopieer Nederlands Waar!


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Wat doe je ongelofelijk moeilijk om te bekijken of een key geset is :?

Gebruik daar iig es:
if(isset($data[$item]))

voor?

Verder is je code nou niet echt een toonbeeld van duidelijkheid, ik heb er even naar zitten staren, maar begrijp er nog weinig van :)

  • Skinkie
  • Registratie: Juni 2001
  • Laatst online: 09-06-2020

Skinkie

Op naar de 500

Topicstarter
ik heb jou meesterlijke stukje code getest alleen het doet precies het omgekeerde van mijn code... altijd no zeggen.

ik heb een array opgebouwd taal array
taal array is opgebouwd uit een array van een aantal onderwerpen
de onderwerpen zijn ook weer onder verdeeld in apparte arrays

dus bijvoorbeeld:
$langitems["nl"]["menu"];

nu wil ik weten of een bepaald item in menu voorkomt.
Dus komt $item voor in array?

in_array($item, $langitems["nl"]["menu"])

ik zie in dat mijn array_keys ff verkeerd zat (maar dat ging wel weer op voor de taal selectie, dat was dus ff een foutje.)

Steun Elkaar, Kopieer Nederlands Waar!


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op donderdag 02 mei 2002 01:44 schreef Skinkie het volgende:
ik heb jou meesterlijke stukje code getest alleen het doet precies het omgekeerde van mijn code... altijd no zeggen.
Mja, daaar is ! voor ;)
in_array($item, $langitems["nl"]["menu"])
Wil je hier testen of
$langitems["nl"]["menu"]["linksonder"] een waarde heeft?
Bijv:
$langitems["nl"]["menu"]["linksonder"] = 'xyz';

Of dat ie er is?
Dus $langitems["nl"]["menu"] = array(...., $item, ...);
Met in_array() test je het tweede namelijk.
Met isset() het eerste.

  • Skinkie
  • Registratie: Juni 2001
  • Laatst online: 09-06-2020

Skinkie

Op naar de 500

Topicstarter
ik wil weten of de waarde xyz bestaat in de array

Steun Elkaar, Kopieer Nederlands Waar!


  • Skinkie
  • Registratie: Juni 2001
  • Laatst online: 09-06-2020

Skinkie

Op naar de 500

Topicstarter
hebbe!

if (in_array("start",array_values($data))) echo "yes"; else echo "no";

Steun Elkaar, Kopieer Nederlands Waar!


  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 23:30
Op donderdag 02 mei 2002 02:01 schreef Skinkie het volgende:
hebbe!

if (in_array("start",array_values($data))) echo "yes"; else echo "no";
Dit is ook brak natuurlijk..
code:
1
2
$bla = in_array("start", array_values($data)) ? "yes" : "no";
echo $bla;

  • Skinkie
  • Registratie: Juni 2001
  • Laatst online: 09-06-2020

Skinkie

Op naar de 500

Topicstarter
dat laatste was alleen om te testen... "normaal" zaten er nog wat functie bij. Maar idd fast-if is hander voor deze "demo".

Steun Elkaar, Kopieer Nederlands Waar!


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

PHP:
1
<?if (in_array("start",$data)) echo "yes"; else echo "no";?>

Werkt niet?
Die array_values is volgens mij compleet overbodig.

  • Grum
  • Registratie: Juni 2001
  • Niet online
Grappig dat niemand ziet dat dit een parse error opleverd :D
code:
1
if (in_array($item,$langitems["$lang"]["menu"]))==False)

  • Skinkie
  • Registratie: Juni 2001
  • Laatst online: 09-06-2020

Skinkie

Op naar de 500

Topicstarter
Meesterlijk ACM... waarom hij het vanmorgen niet deed is me een raadsel.
PHP:
1
<?if (in_array($item,$langitems["$lang"]["menu"], True)==False) { $result=$langitems["$lang"]["menu"][8]; } else { $result=$item; }?>

Steun Elkaar, Kopieer Nederlands Waar!


  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 23:30
Op donderdag 02 mei 2002 12:24 schreef Grum het volgende:
Grappig dat niemand ziet dat dit een parse error opleverd :D
code:
1
if (in_array($item,$langitems["$lang"]["menu"]))==False)
Ja 1 haakje sluiten teveel...
Pagina: 1