【发布时间】:2011-07-03 23:44:44
【问题描述】:
我需要一个数组中的唯一字符串,这样我就可以知道它何时发生变化,而无需测量该数组的输入。我正在尝试确定计算值是否在计算上是有效的,而不是添加代码来查找数组中的变化。数组本身可以有多种值,为了将来的验证,我不想尝试测量新值是否已添加到数组中,我宁愿创建一些字符串或哈希值,如果数组本身会改变变化。
例如:
$a = Array(
'var1' => 1,
'var2' => 2,
'var3' => 3,
);
如果我要使用 md5(http_build_query($a)) 或者添加 ksort 来确认键的顺序没有改变,这可能会产生一个唯一的字符串,我可以用它来与应用程序的另一次运行进行比较评估数组是否发生了变化。
我正在寻找一种替代的、可能更快或更优雅的解决方案。
【问题讨论】:
-
我认为 array_diff 不会处理检查键顺序是否已更改。您可以对数组进行 json_encode 并对其进行哈希处理。可能要检查 json_encode 和 http_build_query 的性能。