Replace only first match using preg_replace [duplicate]

I have a string with structure similar to: 'aba aaa cba sbd dga gad aaa cbz'. The string can be a bit different each time as it's from an external source.

I would like to replace only first occurrence of 'aaa' but not the others. Is it possible?


The optional fourth parameter of preg_replace is limit:

preg_replace($search, $replace, $subject, 1);

You can use the limit argument of preg_replace for this and set it to 1 so that at most one replacement happens:

$new = preg_replace('/aaa/','replacement',$input,1);