【问题标题】:Can't get in_array to work with associative array无法让 in_array 与关联数组一起使用
【发布时间】:2013-01-12 20:22:56
【问题描述】:

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

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

我非常感谢任何帮助。谢谢!

【问题讨论】:

    标签: php arrays multidimensional-array


    【解决方案1】:

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

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

    【讨论】:

    • 这正是我所需要的!我对所有内置的 php 函数都很陌生。谢谢!
    【解决方案2】:

    你不能在这里使用in_array()检查一个值是否存在于一个数组中)。

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

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

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

    【讨论】:

    • 感谢您向我解释!这对我有很大帮助。
    猜你喜欢
    • 2014-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-20
    • 2014-02-13
    • 2020-04-27
    相关资源
    最近更新 更多