php数组_unique根据服务器返回空数组

php数组_unique根据服务器返回空数组,php,array-unique,Php,Array Unique,我有一行代码在我本地的开发机器上工作过,但在另一台机器上不工作(如预期的那样) 以下是我对array_unique调用的调试: debug("Parameter array size: ".sizeof($parameters)); debug("Sorted array size: ".sizeof(array_unique($parameters, SORT_REGULAR))); debug_r($parameters); debug_r(array_unique($parameters,

我有一行代码在我本地的开发机器上工作过,但在另一台机器上不工作(如预期的那样)

以下是我对array_unique调用的调试:

debug("Parameter array size: ".sizeof($parameters));
debug("Sorted array size: ".sizeof(array_unique($parameters, SORT_REGULAR)));
debug_r($parameters);
debug_r(array_unique($parameters, SORT_REGULAR));
(我已经编写了debug和debug\r函数来输出输入,但格式很好。)

结果是:

Parameter array size: 10
Sorted array size: 0
Array ( [0] => ~oli_Search_Term [1] => ~oli_Search_Term [2] => ~oli_Search_Term [3] => ~oli_Search_Term [4] => ~tim_Time_From [5] => ~tim_Time_To [6] => ~tim_Time_From [7] => ~tim_Time_To [8] => ~tim_Time_From [9] => ~tim_Time_To )
注意-最后的调试调用没有任何输出(用于转储array_unique($parameters,SORT_REGULAR)的内容)

为什么阵列为空(并且仅在一台计算机上)

输出为空的机器正在运行PHP版本5.0.3

添加以下内容:

vardump($parameters);
…产生:


数组(10){[0]=>string(16)][1]=>string(16)][2]=>string(16)][3]=>string(16)][4]=>string(14)][5]=>string(12)~tim_Time_至[6]=>string(14)~tim_至[7]=>string(12)~tim_至[8]=>“~tim_Time_To”}

在没有找到上述问题的解决方案后,我开始考虑是否有一个变通方法——以另一种方式编写代码

我发现的解决方法是:

对于以下所有情况:

array_unique($parameters, SORT_REGULAR)
替换为:

array_unique($parameters)
我不确定这种修改后的行为会是什么,尽管乍一看,它似乎产生了我想要的结果。为了明确检查这种更改会起到什么作用,我参考了手册,发现:

将可选的sort_标志默认添加为sort_REGULAR。在5.2.9之前,此函数用于在内部使用sort_字符串对数组进行排序


所以根本原因是,在运行5.0.3的第二台服务器上,不支持可选标志参数。

对我来说工作正常在我的另一台运行PHP版本5.6.25的电脑上工作正常。你能在帖子中更新
var\u dump($parameters)
吗?完成-请参阅帖子底部。你当前使用的是哪个版本?