【问题标题】:in_array not finding value in arrayin_array 未在数组中找到值
【发布时间】:2014-05-27 07:00:28
【问题描述】:

我有一个通过分解字符串形成的数组,如下所示。

$interest_array = explode(',', $user->interests);

当我 var_dump 这个数组时,我得到了

array(3) { 
    [0]=> string(19) "Acute critical care" 
    [1]=> string(11) " Cardiology" 
    [2]=> string(20) " Computed Tomography"
}

使用以下代码

if (in_array('Acute critical care', $interest_array)) {
        echo "selected";}

我输出....被选中。 现在很好,但我需要它来处理几个数组值。以下面的代码为例,

if (in_array('Acute critical care', $interest_array)) {
    echo "selected_once";
}

if (in_array('Cardiology', $interest_array)) {
    echo "selected_twice";
}

我只得到selected once 的一个输出,但我期待selected once 的输出两次

这是为什么。我看到很多人在使用 in_array 时遇到过类似的问题,但我找到的解决方案都没有(而且大多数问题都略有不同。我尝试翻转数组并使用array_key_exists 没有运气。我也尝试过@ 987654328@ 删除字符串中的空格没有运气。有人能解释一下问题是什么吗?

【问题讨论】:

    标签: php arrays output


    【解决方案1】:

    如果你仔细查看var_dump()的输出,你可以看到字符串Cardiology的开头有一个空格:

    string(11) " Cardiology"
                ^
    

    这导致in_array() 无法将其检测为匹配值。要删除空格,您可以在执行in_array() 检查之前使用array_map() 对所有数组元素应用trim

    $interest_array = explode(',', $user->interests);
    $interest_array = array_map('trim', $interest_array);
    

    【讨论】:

    • @GhostRider:很高兴我能帮上忙。干杯!
    猜你喜欢
    • 1970-01-01
    • 2012-10-05
    • 2011-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-26
    • 2018-05-14
    相关资源
    最近更新 更多