- microtime: documentation ( source)
- array_flip: documentation ( source)
- number_format: documentation ( source)
- md5: documentation ( source)
<?php
function arraydiff(&$array1, &$array2) {
$a1 = array_flip($array1);
$a2 = array_flip($array2);
$differences = array(); //what is in array 1 that is not in array2
$c = count($a1);
foreach ($a1 as $k => $v) {
if (!isset($a2[$k])) {
$differences[] = $k;
}
}
return $differences;
}
$i=0; $j=500000;
while($i < 60000) {
$i++; $j++;
$data1[] = md5($i);
$data2[] = md5($j);
}
$time = microtime(true);
echo "Starting arraydiff\n";
$data_diff1 = arraydiff($data1, $data2);
$time = microtime(true) - $time;
echo 'arraydiff() took ' . number_format($time, 3) . ' seconds and returned ' . count($data_diff1) . " entries\n";