Мой вклад в терминах ES6. В общем случае он находит пересечение массива с неопределенным числом массивов, предоставляемых в качестве аргументов.
Array.prototype.intersect = function(...a) {
return [this,...a].reduce((p,c) => p.filter(e => c.includes(e)));
}
var arrs = [[0,2,4,6,8],[4,5,6,7],[4,6]],
arr = [0,1,2,3,4,5,6,7,8,9];
document.write("<pre>" + JSON.stringify(arr.intersect(...arrs)) + "</pre>");
Вы просто пытаетесь удалить комментарии? Как насчет
s/<!--[^>]*-->//g
или чуть лучше (предложено самим вопрошающим):
<!--(.*?)-->
Но помните, что HTML не регулярный, поэтому использование регулярных выражений для его синтаксического анализа приведет вас в мир боли, когда кто-то бросает туда причудливые крайности.
preg_replace('/<!--(.*)-->/Uis', '', $html)
Этот PHP-код удалит все теги комментариев html из строки $html.