How To Calculate Merkle Root?
This is the correct way to double hash two tx's.
First you need to convert them into little endian, and then convert into raw binary data before hashing.
&lt;?php

function le_raw ($str) {
    return pack(&quot;H*&quot;, join(&quot;&quot;, array_reverse(str_split($str, 2))) );
    // return map { pack &quot;H*&quot;, join &quot;&quot;, reverse /(..)/g } @_;
}
function be_hex ($raw) {
    return join(&quot;&quot;, array_reverse(str_split( unpack(&quot;H*&quot;, $raw)[1], 2)));
    // return map { join &quot;&quot;, reverse unpack(&quot;H*&quot;, $_) =~ /(..)/g } @_;
}

$tx1 = le_raw(&quot;32650049a0418e4380db0af81788635d8b65424d397170b8499cdc28c4d27006&quot;);
$tx2 = le_raw(&quot;30861db96905c8dc8b99398ca1cd5bd5b84ac3264a4e1b3e65afa1bcee7540c4&quot;);
$v = hash('sha256', hash('sha256', $tx1.$tx2, true), true );

echo be_hex($v), &quot;\n&quot;;

output
d47780c084bad3830bcdaf6eace035e4c6cbf646d103795d22104fb105014ba3