<?php
header("Content-Type: text/plain; charset=utf-8");
?> 
<?php
mb_internal_encoding("UTF-8");
$number = array('84951234567', '+74951234567', '8-495-1-234-567', '8 (8122) 56-56-56', '8-911-1234567', '8 (911) 12 345 67', '8-911 12 345 67', '8 (911) - 123 - 45 - 67', '+ 7 999 123 4567', '8 ( 999 ) 1234567', '8 999 123 4567');
$number2 = array('02', '84951234567 позвать люсю', '849512345', '849512345678', 
'8 (409) 123-123-123', '7900123467', '5005005001', '8888-8888-88',
'84951a234567', '8495123456a', 
'+1 234 5678901', // неверный код страны
'+8 234 5678901', // либо 8 либо +7
'7 234 5678901' // нет +
);


function getNumber($array)
{
	foreach ($array as &$number)
	{
	if (preg_match('/^\s?[+]?\s?(7|8)/', $number))
	{
    $number = preg_replace('/[\s-()]/', '', preg_replace('/^\s?[+]\s?7/', '8', $number));  
    if (strlen($number) != 11 OR !is_numeric($number))
    {
    $number = "$number Неверно введен номер";     		
	} 	
	elseif (!preg_match('/^8\\d*/', $number))	
	{
	$number = "$number Неверно введен код страны";
	}
	}	
	else $number = "$number Неверный формат номера";	
	}
    return $array;
}
print_r(getNumber($number));
print_r(getNumber($number2));