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

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

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

    [Ленинградский] => Array
        (
            [0] => Ленинградский
        )

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

)