- array_slice: documentation ( source)
- implode: documentation ( source)
- preg_split: documentation ( source)
- usort: documentation ( source)
<?php
$subject = 'in the middle 9850112686331(14-15): for Rocco A & Stephanie';
$arr = preg_split('/[^a-z0-9\-()]/i', $subject);
$candidates = [];
for ($i = 0; $i < count($arr); $i++) {
for ($j = $i; $j < count($arr); $j++) {
$candidates[] = implode(' ', array_slice($arr, $i, $j - $i + 1));
}
}
usort($candidates, function($a, $b) {
return strlen($b) - strlen($a);
});
foreach($candidates as $candidate){
echo $candidate . PHP_EOL;
}