$string = explode( "2", $string, 5 );
$string = array_slice( $string, 0, 4 );
$string = implode( "2", $string );
ここで実際に見てください:http://codepad.viper-7.com/GM795F
いくつかの混乱を加えるために (人々はそうするつもりはないので)、これをワンライナーに変えることができます:
implode( "2", array_slice( explode( "2", $string, 5 ), 0, 4 ) );
ここで実際に見てください:http://codepad.viper-7.com/mgek8Z
より健全なアプローチについては、関数にドロップします。
function truncateByOccurence ($haystack, $needle, $limit) {
$haystack = explode( $needle, $haystack, $limit + 1 );
$haystack = array_slice( $haystack, 0, $limit );
return implode( $needle, $haystack );
}
ここで実際に見てください:http://codepad.viper-7.com/76C9VE