イントロ:
配列を取り、そのハッシュを返すことができる関数が必要です。
これはspl_object_hash()に似ていますが、指定された配列のハッシュを返す点が異なります。
だから、これまで私が試した
function array_hash(array $array) {
return spl_object_hash((object) $array);
}
問題点
1) このアルゴリズムは、それ自体では効率的ではありません。たとえば、次のようなものを渡すとどうなりますか。
$array = array(
'foo' => 'bar',
'bool' => false,
'junk' => array(
'junk1' => array('foo' => array('__test__'))
)
)
ネストされた配列をオブジェクトにキャストしません。
2) もう 1 つの大きな問題は、spl_object_hash()
新しい HTTP リクエストごとに同じオブジェクトに対して異なるハッシュを返すことです。
質問
繰り返しますが、配列の永続的なハッシュが必要です。とは異なりspl_object_hash()
、 は各 HTTP 要求で持続します。どうすればこれを正しく行うことができますか?