How I can calculate the MD5 in PHP of the all values of array below:
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"
}
}
}
... $dom = new DOMDocument; $dom->loadXML($hash); ...
$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);("
", "", $tmp);
}
$mensagemTISS = $mensagemTISS . ($tmp);
}
}
echo '<hr>HASH: <pre>'.$mensagemTISS.'</pre><hr>';
return md5($mensagemTISS);
I would simply go with:
$hash = md5(serialize($array));
To calculate MD5 hash of multidimensional array do this: $hash = md5(serialize($arr));
You need to do a combination of the functions md5()
, serialize()
. And also array_multisort()
so arrays with the same keys and values, but with a different order will give the same hash.
$hash = md5(serialize(array_multisort($sorted_array)));