PHP cli использует другой ini, чем PHP apache.
Когда вы используете Symfony с обеих консолей (команд) и apache (приложение), вы должны убедиться, что оба ini-файла правильно настроены для Symfony .
В браузере вы можете перейти к web/config.php
, чтобы увидеть отчет Symfony о ваших настройках PHP и т. д.
Это решение использует грубую силу, чтобы сравнить каждую строку с оставшейся (нарезая массив), просто для удовольствия написать один вкладыш.
Он не удаляет строку, если порядок обратный, например "hair bright"
не рассматривается как подпункт "bright hair dryer"
.
[ e for i, e in enumerate(mylist) if not any([ e in s for s in mylist[:i] + mylist[i+1:] ]) ]
#=> ['love', 'bright light', 'bright hair dryer']
Вы можете перебирать список, отсортированный по длинам фраз в обратном порядке, и добавлять каждую возможную подфразу в набор, чтобы можно было использовать этот набор, чтобы проверить, является ли текущая фраза подфраза предыдущая, более длинная фраза:
output = []
seen = set()
for phrase in sorted(l, key=len, reverse=True):
words = tuple(phrase.split())
if words not in seen:
output.append(phrase)
seen.update({words[i: i + n + 1] for n in range(len(words)) for i in range(len(words) - n)})
так, что дано:
l = ['love', 'hair', 'light', 'hair dryer', 'bright light', 'bright hair dryer']
output
становится:
['bright hair dryer', 'bright light', 'love']