You can create a RegEx with LookAheads:
$regex='/(?=.*?'.implode(')(?=.*?', $needles).')/s';
then simple check against your string:
if (preg_match($regex,$string)===1) echo 'true';
Demo code: https://eval.in/144296
Explained RegEx: http://regex101.com/r/eQ0hU4