для комментаторов: не проверял типы, не кидал исключения - преднамеренно.
@param @return
class ResortEmails{
public $emails;
public $domain_zone;
public $count_domains;
private $temp_array;
public $sorted_in_line;
public function __construct($array_emails){
$this->emails = $array_emails;
$this->sorted_in_line = '';
}
protected function getDomainsZone(){
foreach($this->emails as $email){
$temp_str = explode("@", $email);
$this->domain_zone[$temp_str[1]][] = $email;
}
$this->count_domains = sizeof($this->domain_zone);
}
private function resetKey(){
sort($this->domain_zone);
}
private function combineArray(){
for($i=0;$i<$this->count_domains;$i++){
foreach($this->domain_zone[$i] as $k=>$v){
$this->temp_array[$k][] = $v;
}
}
}
private function sortedInLine(){
foreach($this->temp_array as $k=>$v){
$this->sorted_in_line .= implode(';',$v).';';
}
}
public function getEmailList(){
$this->getDomainsZone();
$this->resetKey();
$this->combineArray();
$this->sortedInLine();
$result = explode(";", rtrim($this->sorted_in_line,";"));
return $result;
}
}
$o = new ResortEmails($e);
$result = $o->getEmailList();
БЫЛОArray
(
[0] => arut@mail.ru
[1] => qetr@mail.ru
[2] => outr@mail.ru
[3] => magn@mail.ru
[4] => zert@mail.ru
[5] => fito@mail.ru
[6] => poru@yandex.ru
[7] => dena@yandex.ru
[8] => dina@rambler.ru
[9] => dona@rambler.ru
[10] => rody@list.ru
[11] => mass@list.ru
[12] => kaba@list.ru
[13] => dert@list.ru
[14] => belu@list.ru
[15] => zerd@list.ru
[16] => gozy@spb.ru
[17] => edra@spb.ru
[18] => opta@spb.ru
)
СТАЛО
Array
(
[0] => dina@rambler.ru
[1] => poru@yandex.ru
[2] => gozy@spb.ru
[3] => arut@mail.ru
[4] => rody@list.ru
[5] => dona@rambler.ru
[6] => dena@yandex.ru
[7] => edra@spb.ru
[8] => qetr@mail.ru
[9] => mass@list.ru
[10] => opta@spb.ru
[11] => outr@mail.ru
[12] => kaba@list.ru
[13] => magn@mail.ru
[14] => dert@list.ru
[15] => zert@mail.ru
[16] => belu@list.ru
[17] => fito@mail.ru
[18] => zerd@list.ru
)
массивы различаются, но смысл то что ты сказал, по доменом "колода растосована"
можно в combineArray() - сортировать массив, чтобы сначала шли подмассивы по доменам с наибольшим кол-вом.
это уж как душе угодно.
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker