我怎样才能在PHP中计算出所有数组值的MD5

时间:2014-05-22 12:13:31

标签: php arrays array-merge

如何在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" 
        }
    }
} 

4 个答案:

答案 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);
相关问题