2013-01-12 16 views
6

Mam problem z próbą pokazania, że ​​pewne liczby (numery produktów) istnieją w tablicy asocjacyjnej. Kiedy próbuję tego kodu, zawsze otrzymuję "fałsz".Nie można uzyskać in_array do pracy z tablicą asocjacyjną

<?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"; 
} 
?> 

Byłbym wdzięczny za każdą pomoc. Dzięki!

Odpowiedz

23

Szukacie array_key_exists(), nie in_array(), ponieważ szukasz konkretnego klucza, nie szukając wartości:

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

Dokładnie tego potrzebowałem! Jestem całkiem nowy we wszystkich wbudowanych funkcjach php. Dzięki! – thomaskessel

3

nie można używać in_array() tutaj (sprawdza, czy wartość istnieje w tablicy).

Wypróbuj array_key_exists() (sprawdza, czy dany klucz lub indeks istnieje w tablicy).

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

Można nawet sprawdzić istnienia klucza z isset() i empty().

+0

Dziękuję za wyjaśnienie mi tego! To bardzo mi pomaga. – thomaskessel

Powiązane problemy