Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.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中计算数组所有值的MD5_Php_Arrays_Array Merge - Fatal编程技术网

如何在PHP中计算数组所有值的MD5

如何在PHP中计算数组所有值的MD5,php,arrays,array-merge,Php,Arrays,Array Merge,如何在PHP中计算以下数组的所有值的MD5: array(2) { ["cabecalho"]=> array(5) { ["identificacaoTransacao"]=> array(4) { ["tipoTransacao"]=> string(22) "VERIFICA_ELEGIBILIDADE" ["sequencialTransacao"]=> int(1)

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

我只想说:

$hash = md5(serialize($array));

要计算多维数组的MD5哈希,请执行以下操作:
$hash=MD5(serialize($arr))

您需要组合使用函数
md5()
serialize()
。还有
array\u multisort()
因此,具有相同键和值但顺序不同的数组将给出相同的哈希值

$hash = md5(serialize(array_multisort($sorted_array)));
。。。 $dom=新的DOMDocument; $dom->loadXML($hash);

$mensagematis='';
$output=array();
$els=$objDom->getElementsByTagName('*');
对于($i=0;$i长度;$i++){
如果(!$els->item($i)->hasChildNodes()){
}elseif($els->item($i)->firstChild->nodeType==3){
$tmp=$els->item($i)->textContent;
如果(预替换('/\s+/','$tmp)){
$tmp=preg_replace('/\s+/','',$tmp);(“\n”,'',$tmp);
}
$mensagemTISS=$mensagemTISS($tmp);
}
}
echo“
哈希:”.$mensagematis.“
”; 返回md5($Mensagematis);
您的问题标题的目的是告诉我们有关问题的信息,而不是您对问题的主观严重性或感知到的有用性。在计算MD5之前序列化整个数组。此MD5的目的是什么?如果有另一个数组具有相同的元素,但顺序不同,该怎么办?阵列是否应该保持不变?如果该数组包含其他数组,那么应该对它们进行求值吗?
$hash=md5(serialize($arr))
您的意思是创建每个值的散列,留下许多散列,还是将整个数组作为一个整体进行散列?
    $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);