<?php

function simple_getDays($value) {
    $days = array (
        1=>'понедельник',
        2=>'вторник',
        3=>'среда',
        4=>'четверг',
        5=>'пятница',
        6=>'суббота',
        7=>'воскресенье',
    );
    foreach ($value as $day) {
        $result[] = $days[$day];
    }
    return implode(', ',$result);
}
 

function Stallman_getDays($value)
{
    return implode(', ', array_map(function($day)
    {
    	return call_user_func(
    		function($src, $key)
    		{
    			return $src[$key];	
    		},
    		array (
		        'понедельник',
		        'вторник',
		        'среда',
		        'четверг',
		        'пятница',
		        'суббота',
		        'воскресенье',
		    ),
		    $day - 1);
    }, $value));
}

 
$startTime = microtime(true);
for ($i = 0; $i < 9000; $i++) {
    $s = simple_getDays(array(2,5,6));
}
$stopTime = microtime(true);
echo 'foreach takes ' . strval($stopTime - $startTime) . ' seconds' . PHP_EOL;

$startTime = microtime(true);
for ($i = 0; $i < 9000; $i++) {
    $s = Stallman_getDays(array(2,5,6));
}
$stopTime = microtime(true);
echo 'functional approach takes ' . strval($stopTime - $startTime) . ' seconds' . PHP_EOL;
