1

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

$array[2] = "Automotive Repairs and Servicing";

我尝试在 $array 上搜索汽车维修和服务,它返回 false:

array_search('Automotive Repairs and Servicing', $array);

我发现它返回 false 因为我在搜索字符串中有一个空格,即 Automotive(space)Repairs(space)and(space)Servicing。

有谁知道我怎样才能让我的搜索成功返回密钥?我曾尝试将空格设为 %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 不会在您的数据中使用空格(人眼不可见)“恶作剧”您。

我要出去抽支烟。

4

1 回答 1

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
于 2012-05-02T00:56:02.710 回答