如何在PHP中计算下面数组的所有值的MD5:
array(2) {
["cabecalho"]=> array(5) {
["identificacaoTransacao"]=> array(4) {
["tipoTransacao"]=> string(22) "VERIFICA_ELEGIBILIDADE"
["sequencialTransacao"]=> int(1)
["dataRegistroTransacao"]=> string(10) "2014-05-22
["horaRegistroTransacao"]=> string(8) "17:00:00"
}
["origem"]=> array(1) {
["codigoPrestadorNaOperadora"]=> array(1) {
["CNPJ"]=> string(14) "XXXXXXXXXXXXXXXX"
}
}
["destino"]=> array(1) {
["codigoPrestadorNaOperadora"]=> array(1) {
["CNPJ"]=> string(14) "XXXXXXXXXXXX"
}
}
["versaoPadrao"]=> string(7) "2.02.03"
["identificacaoSoftwareGerador"]=> array(3) {
["nomeAplicativo"]=> string(10) "XXXXXXXXXX"
["versaoAplicativo"]=> string(6) "V1.0.0"
["fabricanteAplicativo"]=> string(27) "XXXXXXXXXXXXXX"
}
}
["verificaElegibilidade"]=> array(2) {
["dadosPrestador"]=> array(2) {
["identificacao"]=> array(1) {
["codigoPrestadorNaOperadora"]=> string(8) "XXXXXXXXX"
}
["nomeContratado"]=> string(26) "XXXXXXXXXXXXXX"
}
["dadosBeneficiario"]=> array(3) {
["numeroCarteira"]=> string(9) "XXXXXXXXXX"
["nomeBeneficiario"]=> string(22) "XXXXXXXXXXXXXXXXXX"
["nomePlano"]=> string(24) "MEDIAL 300 RM OR QC PJCE"
}
}
}
答案 0 :(得分:1)
要计算多维数组的MD5哈希值:$hash = md5(serialize($arr));
答案 1 :(得分:0)
我会简单地选择:
$hash = md5(serialize($array));
答案 2 :(得分:0)
您需要结合使用md5()
,serialize()
这些功能。而且array_multisort()
所以具有相同键和值的数组,但具有不同的顺序将给出相同的散列。
$hash = md5(serialize(array_multisort($sorted_array)));
答案 3 :(得分:0)
... $ dom = new DOMDocument; $ dom-> loadXML的($散列); ...
$mensagemTISS = '';
$output = array();
$els = $objDom->getElementsByTagName('*');
for($i=0;$i<$els->length;$i++) {
if(! $els->item($i)->hasChildNodes() ) {
} elseif ($els->item($i)->firstChild->nodeType == 3 ) {
$tmp = $els->item($i)->textContent;
if ( preg_replace('/\s+/', '', $tmp) ) {
$tmp = preg_replace('/\s+/', '', $tmp);("\n", "", $tmp);
}
$mensagemTISS = $mensagemTISS . ($tmp);
}
}
echo '<hr>HASH: <pre>'.$mensagemTISS.'</pre><hr>';
return md5($mensagemTISS);