fork(4) download
  1. <?php
  2. $numbers = range(32, 127);
  3. $numbersLetters = array_map('chr', $numbers);
  4.  
  5. for (;;) {
  6. $numbersLetters = array_merge($numbersLetters, $numbersLetters);
  7.  
  8. if (count($numbersLetters) > 10000) {
  9. break;
  10. }
  11. }
  12.  
  13. $numbers = range(1, count($numbersLetters));
  14.  
  15. printf("Sample size: %d elements in 2 arrays (%d total) \n", count($numbers), count($numbers) + count($numbersLetters));
  16. printf("Benchmarking speed in foreach + in_array() scenario... (this might take a while) ");
  17.  
  18. shuffle($numbers);
  19. shuffle($numbersLetters);
  20.  
  21. $t1 = microtime(true);
  22.  
  23. foreach ($numbers as $number) {
  24. if (in_array($number, $numbersLetters)) {}
  25. }
  26.  
  27. $t2 = microtime(true);
  28.  
  29. printf("DONE!\n");
  30. printf("Time elapsed: %.5f \n", $t2 - $t1);
  31.  
  32. // =============================------------===============================
  33.  
  34. printf("Benchmarking speed with array_intersect...");
  35.  
  36. shuffle($numbers);
  37. shuffle($numbersLetters);
  38.  
  39. $t1 = microtime(true);
  40.  
  41. array_intersect($numbers, $numbersLetters);
  42.  
  43. $t2 = microtime(true);
  44.  
  45. printf("DONE!\n");
  46. printf("Time elapsed: %.5f \n", $t2 - $t1);
Success #stdin #stdout 3.86s 52488KB
stdin
Standard input is empty
stdout
Sample size: 12288 elements in 2 arrays (24576 total) 
Benchmarking speed in foreach + in_array() scenario... (this might take a while) DONE!
Time elapsed: 3.79213 
Benchmarking speed with array_intersect...DONE!
Time elapsed: 0.05765