- array_map: documentation ( source)
- preg_replace_callback: documentation ( source)
- implode: documentation ( source)
- explode: documentation ( source)
- strtoupper: documentation ( source)
<?php
$text = 'binary_function([x,y]) and binary_function([x1,y1,z1])';
echo preg_replace_callback('~binary_function\(\[(.*?)]\)~', function ($m) {
return implode("", array_map(function ($x) { return strtoupper($x); }, explode(",", $m[1])));
}, $text);