Php unicode数组的in_数组的替代方案

Php unicode数组的in_数组的替代方案,php,arrays,search,unicode,Php,Arrays,Search,Unicode,由于进行线性搜索,对于大型阵列,in_array函数的速度非常慢 另一种更快的方法是搜索数组的键 因此 比以前快多了 if (in_array($val,$array)) 对于大型阵列。但是,使用unicode作为数组键将不起作用 对于unicode,是否有其他方法可以做到这一点,而不必求助于线性搜索(如in_array或array_search)或生成类似md5的散列?您可以将任何内容用作可以转换为字符串的键 比较: 但显然有些人在数组键中有特殊字符的问题。我敢打赌,如果在存储密钥和搜索密钥

由于进行线性搜索,对于大型阵列,in_array函数的速度非常慢

另一种更快的方法是搜索数组的键

因此

比以前快多了

if (in_array($val,$array))
对于大型阵列。但是,使用unicode作为数组键将不起作用


对于unicode,是否有其他方法可以做到这一点,而不必求助于线性搜索(如in_array或array_search)或生成类似md5的散列?

您可以将任何内容用作可以转换为字符串的键

比较:

但显然有些人在数组键中有特殊字符的问题。我敢打赌,如果在存储密钥和搜索密钥时使用不同的编码,可能会出现这种情况。例如,您的密钥来自使用UTF-8的数据库,但是当您进行搜索时,您会在Iso编码的PHP脚本中搜索硬编码的密钥。这只是一个例子,有几十个这样的场景。
为了确保您始终使用与我相同的编码。

但是isset使用utf密钥-@marv255不使用isset[$key],这非常有效。在接受这一点之前,我会等着看是否有更好的答案
if (in_array($val,$array))