- preg_replace_callback: documentation ( source)
<?php
$cart = "1+10,2+10,3+10,5+10,6+10";
$product = 3;
$change = 5;
$finalcart = preg_replace_callback("/(.*" .$product . "\+)(\d+)(.*)/", function($m) use($change){
return $m[1] . ($m[2]+$change) . $m[3];
}, $cart);
Echo $finalcart;