2013-01-12 36 views
6

我在尝试显示某个数字(产品编号)存在于关联数组中时遇到问题。当我尝试这些代码时,我总是会得到“错误”。无法使用in_array与关联数组一起使用

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

我真的很感激任何帮助。谢谢!

回答

23

您正在寻找array_key_exists(),不in_array(),因为你正在寻找一个特定的键,而不是搜索值:如果在一个阵列中存在的值

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

这正是我需要的!我对所有内置的php函数都很陌生。谢谢! – thomaskessel

3

不能使用in_array()这里(检查)。

尝试array_key_exists()检查给定密钥或索引是否存在于数组中)。

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

你甚至可以检查与isset()empty()键所有脑干。

+0

谢谢你向我解释!这帮助了我很多。 – thomaskessel