fork(1) download
  1. <?php
  2. $arr = [
  3. 'Концерт группы Ленинград',
  4. 'Группа ZebraHead',
  5. 'ZebraHead',
  6. 'Группа СПЛИН',
  7. 'Ленинград',
  8. 'Концерт группы ZebraHead',
  9. 'ZebraHead. Презентация альбома',
  10. 'СПЛИН в Олимпийском',
  11. 'Крематорий',
  12. 'Группировка Ленинград'
  13. ];
  14. $newarr = [];
  15.  
  16. $words = [];
  17. $result = [];
  18.  
  19. foreach($arr as $key => $val){
  20. //приводим к нижнему регистру
  21. $val = strtolower($val);
  22.  
  23. //убираем знаки препинания и прочие символы
  24. $val = str_replace(".", "", $val);
  25. $val = str_replace(",", "", $val);
  26. $val = str_replace("/", "", $val);
  27. $val = str_replace(";", "", $val);
  28. $val = trim($val);
  29.  
  30. //запоминаем "очищенные" слова
  31. $newarr[$key] = $val;
  32.  
  33. //разделяем слова в массив
  34. $cw = explode(" ", $val);
  35.  
  36. //запоминаем весь список слов
  37. foreach($cw as $word){
  38. array_push($words, $word);
  39. }
  40. }
  41.  
  42.  
  43. foreach($words as $word){
  44. $ca = [];
  45.  
  46. foreach($newarr as $key => $phrase){
  47. //проверяем, что фраза содержит это слово
  48. if(strpos($phrase, $word) !== false){
  49. //если так, то запоминаем
  50. array_push($ca, $arr[$key]);
  51. }
  52. }
  53.  
  54. $result[$word] = $ca;
  55. }
  56.  
  57. print_r($result);
Success #stdin #stdout 0.01s 52488KB
stdin
Standard input is empty
stdout
Array
(
    [Концерт] => Array
        (
            [0] => Концерт группы Ленинград
            [1] => Концерт группы ZebraHead
        )

    [группы] => Array
        (
            [0] => Концерт группы Ленинград
            [1] => Концерт группы ZebraHead
        )

    [Ленинград] => Array
        (
            [0] => Концерт группы Ленинград
            [1] => Ленинград
            [2] => Группировка Ленинград
        )

    [Группа] => Array
        (
            [0] => Группа ZebraHead
            [1] => Группа СПЛИН
        )

    [zebrahead] => Array
        (
            [0] => Группа ZebraHead
            [1] => ZebraHead
            [2] => Концерт группы ZebraHead
            [3] => ZebraHead. Презентация альбома
        )

    [СПЛИН] => Array
        (
            [0] => Группа СПЛИН
            [1] => СПЛИН в Олимпийском
        )

    [Презентация] => Array
        (
            [0] => ZebraHead. Презентация альбома
        )

    [альбома] => Array
        (
            [0] => ZebraHead. Презентация альбома
        )

    [в] => Array
        (
            [0] => СПЛИН в Олимпийском
            [1] => Группировка Ленинград
        )

    [Олимпийском] => Array
        (
            [0] => СПЛИН в Олимпийском
        )

    [Крематорий] => Array
        (
            [0] => Крематорий
        )

    [Группировка] => Array
        (
            [0] => Группировка Ленинград
        )

)