@ 2017-07-13T10:44:42Z <?php
function ksortMultiDimensional(&$params = array())
{
if (is_array($params)) {
ksort($params);
foreach ($params as &$p) {
if (is_array($p)) {
ksort($p);
}
}
}
}
function process($params, $key, $version = 2)
{
ksortMultiDimensional($params);
$baseString = prepareParams($params, $baseString);
$baseString .= $key;
if ($version == self::VERSION_TWO) {
return md5($baseString);
}
return hash('sha256', $baseString);
}
function prepareParams($params = array(), $baseString = '')
{
foreach ($params as $key => $value) {
if (!isset($value)) {
continue;
}
if (is_array($value)) {
foreach ($value as $k => $v) {
$baseString .= $key . '[' . $k . ']' . '=' . ($v === false ? '0' : $v);
}
} else {
$baseString .= $key . '=' . ($value === false ? '0' : $value);
}
}
return $baseString;
}
$data = [
'key1' => 'Hello',
'key2' => 2,
'key3' => [
'key4' => 'hello',
'key5' => 'world',
'abc' => 'def',
],
'key0' => 'yolo',
'key11' => null,
'key111' => 1.2
];
var_dump(process($data, 'abc', 3));
Enable javascript to submit You have javascript disabled. You will not be able to edit any code.
Here you find the average performance (time & memory) of each version. A grayed out version indicates it didn't complete successfully (based on exit-code).
Version System time (s) User time (s) Memory (MiB) 7.1.7 0.003 0.014 17.11 7.1.6 0.075 0.010 32.92 7.1.5 0.069 0.006 34.56 7.1.4 0.021 0.014 34.36 7.1.3 0.017 0.017 34.07 7.1.2 0.018 0.017 34.59 7.1.1 0.003 0.015 16.30 7.1.0 0.048 0.007 14.40 7.0.20 0.043 0.013 14.91 7.0.19 0.045 0.013 14.61 7.0.18 0.008 0.011 16.00 7.0.17 0.052 0.013 16.30 7.0.16 0.009 0.008 16.09 7.0.15 0.040 0.015 14.16 7.0.14 0.007 0.011 16.05 7.0.13 0.006 0.011 16.53 7.0.12 0.043 0.017 14.48 7.0.11 0.058 0.008 16.08 7.0.10 0.012 0.005 16.13 7.0.9 0.040 0.013 14.26 7.0.8 0.044 0.013 16.39 7.0.7 0.000 0.017 16.20 7.0.6 0.045 0.013 16.04 7.0.5 0.035 0.009 16.02 7.0.4 0.003 0.010 16.45 7.0.3 0.003 0.013 16.29 7.0.2 0.009 0.008 16.36 7.0.1 0.006 0.006 16.36 7.0.0 0.006 0.009 16.32
preferences:dark mode live preview
135.79 ms | 1394 KiB | 7 Q