- bin2hex: documentation ( source)
- microtime: documentation ( source)
- array_filter: documentation ( source)
- rand: documentation ( source)
- random_bytes: documentation ( source)
<?php
$amount = 100000;
$size = 15;
$data = [];
for ($i = 0; $i < $size; ++$i) {
$data[$i] = rand(0, 1) ? bin2hex(random_bytes(3)) : null;
}
$start = microtime(true);
for ($lap = 0; $lap < $amount; ++$lap) {
$dataFiltered = [];
for ($i = 0; $i < $size; ++$i) {
if (!is_null($data[$i])) {
$dataFiltered[$i] = $data[$i];
}
}
}
$time = microtime(true) - $start;
echo "Manual: $time\n";
$start = microtime(true);
for ($lap = 0; $lap < $amount; ++$lap) {
$dataFiltered = array_filter($data, function($value)
{
return !is_null($value);
});
}
$time = microtime(true) - $start;
echo "Auto: $time\n";