fork download
  1. <?php
  2. $a = <<<EOL
  3. Александр: 23
  4. Дата: 01.05.2018
  5.  
  6. Александр: 335
  7. Дата: 02.05.2018
  8.  
  9. Александр: 12
  10. Дата: 03.05.2018
  11.  
  12. Марина: 56
  13. Дата: 01.05.2018
  14.  
  15. Марина: 85
  16. Дата: 02.05.2018
  17.  
  18. Марина: 30
  19. Дата: 03.05.2018
  20. EOL;
  21. $a = preg_split("~\\n(?=\\s+)~", $a);
  22. $tmp = [];
  23. foreach($a as $item) {
  24. if(preg_match('/^([^:]+):\s?(\d+)/', $item, $m)) {
  25. $tmp[trim($m[1])][] = [
  26. 'data' => $item,
  27. 'age' => (int)$m[2]
  28. ];
  29. }
  30. }
  31. foreach($tmp as &$item) {
  32. $item = array_reduce($item, function($a, $b){
  33. return $a['age'] > $b['age'] ? $a : $b ;
  34. });
  35. }
  36. print_r(array_column($tmp, 'data'));
Success #stdin #stdout 0.02s 23888KB
stdin
Standard input is empty
stdout
Array
(
    [0] => 
Александр: 335
Дата: 02.05.2018
    [1] => 
Марина: 85
Дата: 02.05.2018
)