我已经正确创建了一个数组并且有一个数组项:
$array[2] = "Automotive Repairs and Servicing";
我尝试在$ array上搜索汽车维修和服务,它返回false:
array_search('Automotive Repairs and Servicing', $array);
我发现它返回false,因为我在搜索字符串中有一个空格,即汽车(空间)维修(空间)和(空间)服务。
有谁知道如何让我的搜索成功返回密钥? 我尝试使用空格为%20,\ n,如下所示:
array_search('Automotive%20Repairs%20and%20Servicing', $array);
array_search('Automotive\nRepairs\nand\nServicing', $array);
array_search('Automotive Repairs and Servicing', $array);
我会继续尝试解决这个问题,如果我解决了,我会发布我的答案。
...谢谢你的答案如下。我尝试了你的代码,它也适用于我。
我的真实数组实际上是使用mysql查询从数据库构建的数据,并将结果直接放入数组中。所以不太确定问题出在哪里。
...
我的回答:
感谢大家回应并帮助我解决这个问题。
我发现了我的问题...而且我非常<强烈>尴尬。
原来我的数据库中的“汽车维修和维修”字符串末尾有一个我没有看到的空间。 我以前打过这个,我的mysql数据库就像有时候像这样乱糟糟的。
所以对于那些得到他们的mysql结果并将其粘贴到一个数组中的其他人来说,然后遇到类似的问题,请确保你的mysql不是用一个空间(人眼看不到)来“哄骗”你你的数据。
我要出去抽一支烟。
答案 0 :(得分:2)
我真的没有看到任何问题...
但是这就是我尝试的内容:
<?php
$array[0] = "noo";
$array[1] = "DONE";
$array[2] = "Automotive Repairs and Servicing";
$index = array_search('Automotive Repairs and Servicing', $array);
echo "Index = $index";
?>
这是输出:
Index = 2