当实体中有撇号时不能使用 array_search()

Cannot use array_search() when entity has Apostrophes in them

我遇到一个问题,我有一个公司列表作为一个数组,我正在使用 array_search() 从这个数组中获取键以作为 ID 存储在数据库中。

这适用于我公司的所有公司,但其中带有撇号的公司除外! 我不知道 array_search() 具体是如何工作的,但我找不到为此在线发布的解决方案。

<?php
$array = array("pipefix", "Housing ltd","o'briens roofing","argos");
$search = "o'briens roofing";

$id = array_search($search, $array);
print_r($id);

这显然不是我的确切代码,但原理相同,我正在尝试为我的公司搜索数组,但如果它有一个 ',它总是 return 没有什么!对此有什么想法或解决方案吗?

我使用的数组是从另一个数据库存储的信息中提取的,并发布在我无法控制的 API 上,不幸的是。

我不将此存储在我的数据库中,我只存储 [ID] 用于管理和输入。

提取的数组在检索时进行了 HTML 编码。

我使用 JSONcUrl 从 API 中提取了这个数组。这意味着当我第一次掌握数组值时,Apostrophe 已转换为 &apos;s.

我认为使用 htmlsecialchars_decode() 会恢复这个。感谢 Ryan Vincent,他向我展示了问题是在使用 cUrl 拉出时创建的。

不幸的是,我无法更改此设置,因此在创建数组时,我现在执行 str_replace() 并简单地删除 &apos;s

这意味着一旦显示它在技术上是不正确的。但由于只有少数人在使用它,所以这样做比每次搜索都必须在后端进行更有效。