fork download
  1. <?php
  2.  
  3. function simple_getDays($value) {
  4. $days = array (
  5. 1=>'понедельник',
  6. 2=>'вторник',
  7. 3=>'среда',
  8. 4=>'четверг',
  9. 5=>'пятница',
  10. 6=>'суббота',
  11. 7=>'воскресенье',
  12. );
  13. foreach ($value as $day) {
  14. $result[] = $days[$day];
  15. }
  16. return implode(', ',$result);
  17. }
  18.  
  19.  
  20. function Stallman_getDays($value)
  21. {
  22. return implode(', ', array_map(function($day)
  23. {
  24. function($src, $key)
  25. {
  26. return $src[$key];
  27. },
  28. 'понедельник',
  29. 'вторник',
  30. 'среда',
  31. 'четверг',
  32. 'пятница',
  33. 'суббота',
  34. 'воскресенье',
  35. ),
  36. $day - 1);
  37. }, $value));
  38. }
  39.  
  40.  
  41. $startTime = microtime(true);
  42. for ($i = 0; $i < 9000; $i++) {
  43. $s = simple_getDays(array(2,5,6));
  44. }
  45. $stopTime = microtime(true);
  46. echo 'foreach takes ' . strval($stopTime - $startTime) . ' seconds' . PHP_EOL;
  47.  
  48. $startTime = microtime(true);
  49. for ($i = 0; $i < 9000; $i++) {
  50. $s = Stallman_getDays(array(2,5,6));
  51. }
  52. $stopTime = microtime(true);
  53. echo 'functional approach takes ' . strval($stopTime - $startTime) . ' seconds' . PHP_EOL;
  54.  
Success #stdin #stdout 0.19s 52480KB
stdin
Standard input is empty
stdout
foreach takes 0.041383028030396 seconds
functional approach takes 0.11241412162781 seconds