Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为数组创建哈希,而不考虑元素顺序_Php_Arrays_Hash - Fatal编程技术网

Php 为数组创建哈希,而不考虑元素顺序

Php 为数组创建哈希,而不考虑元素顺序,php,arrays,hash,Php,Arrays,Hash,如果我有一个包含两个元素的数组,我想对它们进行哈希,那么最好的哈希方式是什么,而不考虑元素的顺序。这个问题也适用于较大的数组和多维数组 因此[a=1,b=2]和[b=2,a=1]将返回相同的哈希值 例如,node.js就有这样的功能。按键对数组排序,然后序列化,然后散列 ksort($array); $hash = sha1(serialize($array)); 你到底要怎么用sha1呢?也许对数组进行排序可以满足您的需要;你应该接受它,以便将问题标记为已解决;这对每个人都有帮助,包括你自己

如果我有一个包含两个元素的数组,我想对它们进行哈希,那么最好的哈希方式是什么,而不考虑元素的顺序。这个问题也适用于较大的数组和多维数组

因此
[a=1,b=2]
[b=2,a=1]
将返回相同的哈希值


例如,node.js就有这样的功能。

按键对数组排序,然后序列化,然后散列

ksort($array);
$hash = sha1(serialize($array));

你到底要怎么用sha1呢?也许对数组进行排序可以满足您的需要;你应该接受它,以便将问题标记为已解决;这对每个人都有帮助,包括你自己。@Qirel我很好奇你为什么拒绝编辑“这个编辑引入的标签无助于定义问题的主题。”-两个建议的标签都适合这个问题,IMHO。@Fred-ii-你为什么告诉我这么快就接受答案。我才刚刚醒来。我不知道我做错了什么,向沃伦特提出了这样的基本建议;所以你是那种发布答案然后离开的人,10-4。只是找到了一个似乎不符合要求的答案。别人又问了你一个问题,但你没有回答;只有我。我考虑过分类,但不确定可靠性。我很感兴趣的是,来自nodejs的对象排序是否采用了相同的方法,尽管它看起来是这样的。源代码是。请参见第219行,其中包含
var keys=Object.keys(Object.sort()