6

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

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

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

4

2 回答 2

23

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

if( array_key_exists('1001', $products))
于 2013-01-12T20:23:41.437 回答
3

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

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

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

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

于 2013-01-12T20:23:58.813 回答