fork download
  1. <?php
  2.  
  3. function getDays($value)
  4. {
  5. $days = [
  6. 'понедельник',
  7. 'вторник',
  8. 'среда',
  9. 'четверг',
  10. 'пятница',
  11. 'суббота',
  12. 'воскресенье',
  13. ];
  14.  
  15. return implode(', ', array_map(function($day) use (&$days)
  16. {
  17. return $days[$day - 1];
  18. }, $value));
  19. }
  20.  
  21. function getDaysOrig($value)
  22. {
  23. $days = [
  24. 1=>'понедельник',
  25. 2=>'вторник',
  26. 3=>'среда',
  27. 4=>'четверг',
  28. 5=>'пятница',
  29. 6=>'суббота',
  30. 7=>'воскресенье',
  31. ];
  32.  
  33. foreach ($value as $day) {
  34. $result[] = $days[$day];
  35. }
  36.  
  37. return implode(', ',$result);
  38. }
  39.  
  40. function getDaysIntersect( $value )
  41. {
  42. $days = [
  43. 1=> 'понедельник',
  44. 'вторник',
  45. 'среда',
  46. 'четверг',
  47. 'пятница',
  48. 'суббота',
  49. 'воскресенье',
  50. ];
  51.  
  52. return implode(
  53. ', ',
  54. $days,
  55. array_flip( $value )
  56. )
  57. );
  58. }
  59.  
  60. $t = microtime(true);
  61. for ($i = 0; $i < 90000; ++$i) {
  62. getDays([2, 5, 6]);
  63. }
  64. $t = microtime(true) - $t;
  65.  
  66. $tOrig = microtime(true);
  67. for ($i = 0; $i < 90000; ++$i) {
  68. getDaysOrig([2, 5, 6]);
  69. }
  70. $tOrig = microtime(true) - $tOrig;
  71.  
  72. $tIntersect = microtime(true);
  73. for ($i = 0; $i < 90000; ++$i) {
  74. getDaysIntersect([2, 5, 6]);
  75. }
  76. $tIntersect = microtime(true) - $tIntersect;
  77.  
  78. echo "New: {$t}; Orig: {$tOrig}; Intersect: {$tIntersect}\n";
Success #stdin #stdout 1.41s 52472KB
stdin
Standard input is empty
stdout
New: 0.61331605911255; Orig: 0.39229488372803; Intersect: 0.38847422599792