[ create a new paste ] login | about

Link: http://codepad.org/szgNfWHe    [ raw code | fork ]

PHP, pasted on Mar 4:
<?php

function all_equal1($arr, $value) {
  return array_keys(array_flip($arr)) == array($value);
}

function all_equal2($arr, $value) {
  return array_unique($arr) == array($value);
}

function all_equal3($arr, $value) {
  foreach($arr as $v) {
    if($value != $v) { return false; }
  }
  return true;
}

function all_equal4($arr, $value) {
  return count(array_filter($arr, function($x) use($value) { return $x == $value; })) == count($arr);
}

$value = 'no_prices';
$arr = array_fill(0, 1000, $value);

$funcs = array(
  'array_flip'   => all_equal1,
  'array_unique' => all_equal2,
  'foreach'      => all_equal3,
  'array_filter' => all_equal4
);
$trials = 1000;

foreach($funcs as $name => $func) {
  $timetot = 0;
  for($i = 0; $i < $trials; $i++) {
    $time1 = microtime(true);
    $func($arr, 'no_prices');
    $timetot += microtime(true) - $time1;
  }
  printf("%12s: %.8f seconds\n", $name, $timetot);
}


Create a new paste based on this one


Comments: