无法使用in_array来处理关联数组

时间:2013-01-12 20:22:57

标签: php arrays multidimensional-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";
}
?>

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

2 个答案:

答案 0 :(得分:23)

您正在寻找array_key_exists(),而不是in_array(),因为您正在搜索特定密钥,而不是搜索值:

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

答案 1 :(得分:3)

您不能在此使用in_array()检查数组中是否存在值)。

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

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

您甚至可以使用isset()empty()检查密钥的存在。