- $dig_count = strlen($result[2]); // How many digits? eg. 0003 = 4
- $fmt = '%0' . $dig_count . 'd'; // Make a format string - leading zeroes
- $nextval = $result[1] . sprintf($fmt, intval($result[2] + 1)); // Add one on, and put prefix back on
- return $nextval;
+ list($all, $prefix, $number, $postfix) = $result;
+ $dig_count = strlen($number); // How many digits? eg. 0003 = 4
+ $fmt = '%0' . $dig_count . 'd'; // Make a format string - leading zeroes
+ $nextval = sprintf($fmt, intval($number + 1)); // Add one on, and put prefix back on
+
+ return $prefix.$nextval.$postfix;