¿Cómo puedo encontrar, incrementar y reemplazar en php?
Tengo cadenas en la forma\d+_\d+
y quiero agregar 1 al segundo número. Como mi explicación es muy clara, déjame darte algunos ejemplos:
Aqui esta mi primer intento:
$new = preg_replace("/(\d+)_(\d+)/", "$1_".((int)$2)+1, $old);
Esto da como resultado un error de sintaxis:
Error de análisis: error de sintaxis, T_LNUMBER inesperado, esperando T_VARIABLE o '$6$#39; en [...] la línea 201
Aquí está mi segundo intento.
$new = preg_replace("/(\d+)_(\d+)/", "$1_".("$2"+1), $old);
Esto transforma $ old = 1234567_2 en $ new = 1234567_1, que no es el efecto deseado
Mi tercer intento
$new = preg_replace("/(\d+)_(\d+)/", "$1_".((int)"$2"+1), $old);
Esto produce el mismo resultado.
Al hacer estos intentos, me di cuenta de que no entendía cómo funcionaban realmente las nuevas variables $ 1, $ 2, $ 3 ... y no sé qué más probar porque parece que estas variables ya no existen al salir la función preg_replace ...
¿Algunas ideas?