3v4l.org

run code in 300+ PHP versions simultaneously
<?php $arr1 = ['word', 'chord', 'tech', 'care', 'kek', 'lol', 'wild', 'regex']; $arr2 = ['ord', 'ek', 'ol', 'ld', 'gex', 'ss']; $keys=[]; foreach($arr2 as $val){ $matches = preg_grep("/.+" . preg_quote($val) . "/", $arr1); $keys = array_merge($keys, array_keys($matches)); // save keys of matched words foreach($matches as $key => $m) $new[$val][] = str_replace($val, "_$val", $arr1[$key]); } $new['unmatched'] = array_diff_key($arr1, array_flip($keys)); // add unmatched words var_dump($new);

preferences:
38.9 ms | 402 KiB | 5 Q