array_search是带空格的字符串

时间:2012-05-02 00:51:35

标签: php

我已经正确创建了一个数组并且有一个数组项:

$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不是用一个空间(人眼看不到)来“哄骗”你你的数据。

我要出去抽一支烟。

1 个答案:

答案 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