2013-01-12 19 views
6

Ich habe Probleme zu zeigen, dass bestimmte Zahlen (Produktnummern) in einem assoziativen Array vorhanden sind. Wenn ich diesen Code ausprobiere, bekomme ich immer "falsch".Kann in_array nicht mit assoziativem Array arbeiten

<?php 

$products = array(
    '1000' => array('name' => 'Gibson Les Paul Studio', 
        'price' => 1099.99), 
    '1001' => array('name' => 'Fender American Standard Stratocaster', 
        'price' => 1149.99), 
    '1002' => array('name' => 'Jackson SL1 USA Soloist', 
        'price' => 2999.99) 
); 

if (in_array('1001', $products)) { 
    echo "true"; 
} else { 
    echo "false"; 
} 
?> 

Ich würde wirklich jede Hilfe zu schätzen wissen. Vielen Dank!

Antwort

23

Sie suchen array_key_exists(), nicht in_array(), da Sie nach einem bestimmten Schlüssel suchen, nicht die Werte der Suche:

if(array_key_exists('1001', $products)) 
+0

Genau das habe ich gebraucht! Ich bin ziemlich neu in all den eingebauten PHP-Funktionen. Vielen Dank! – thomaskessel

3

Sie können in_array() hier nicht verwenden (prüft, ob ein Wert in einem Array existiert).

Versuchen Sie array_key_exists() (überprüft, ob der angegebene Schlüssel oder Index im Array existiert).

if (array_key_exists('1001', $products)) { 
    echo "true"; 
} else { 
    echo "false"; 
} 

Sie können sogar für Schlüssel existance überprüfen mit isset() und empty().

+0

Vielen Dank für die Erklärung! Das hilft mir sehr. – thomaskessel

Verwandte Themen