gpt4 book ai didi

php - in_array 未在数组中找到值

转载 作者:行者123 更新时间:2023-12-02 04:31:19 26 4
gpt4 key购买 nike

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

$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 twice 的输出。

这是为什么呢。我发现很多人都对 in_array 有类似的问题,但我找到的解决方案都不起作用(而且大多数问题都略有不同。我尝试翻转数组并使用 array_key_exists ,但没有成功。我也尝试过 preg_replace 删除字符串中的空格,但没有成功。有人可以解释一下问题是什么吗?

最佳答案

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

string(11) " Cardiology"
^

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

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

关于php - in_array 未在数组中找到值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23041102/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com