2013-01-12 15 views
6

Ho difficoltà a provare a mostrare che alcuni numeri (numeri di prodotto) esistono in un array associativo. Quando provo questo codice, ottengo sempre "false".Impossibile ottenere in_array per funzionare con array associativo

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

Apprezzerei davvero qualsiasi aiuto. Grazie!

risposta

23

Siete alla ricerca di array_key_exists(), non in_array(), dal momento che si sta cercando un tasto specifico, non cercare i valori:

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

Questo è esattamente ciò di cui avevo bisogno! Sono abbastanza nuovo a tutte le funzioni PHP integrate. Grazie! – thomaskessel

3

Non è possibile utilizzare in_array() qui (controlla se un valore è presente in un array).

Prova array_key_exists() (controlla se la chiave o l'indice specificato esiste nell'array).

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

Si può anche verificare la presenza di esistenza chiave con isset() e empty().

+0

Grazie per avermelo spiegato! Questo mi aiuta molto. – thomaskessel

Problemi correlati