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

6

我试图展示在一个关联数组中,是否存在某些数字(产品号)。但当我尝试这段代码时,总是得到“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";
}
?>

我非常感激您的帮助。谢谢!

2个回答

23
您需要使用array_key_exists()而不是in_array(),因为您正在搜索特定键,而不是搜索值:
if( array_key_exists('1001', $products))

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

3

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

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

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

你甚至可以使用 isset()empty() 来检查关键字是否存在。


谢谢你向我解释!这对我非常有帮助。 - thomaskessel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接