不能让in_array与关联数组一起工作


Can't get in_array to work with associative array

我在试图显示某些数字(产品编号)存在于关联数组时遇到了麻烦。当我尝试这段代码时,我总是得到"false"。

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

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

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

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

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

Try array_key_exists() (检查给定的键或索引是否存在于数组)。

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

您甚至可以使用isset()和empty()检查键是否存在