Actualmente estoy trabajando como desarrollador de php, y ahora tengo una tarea con un antiguo código heredado de php que está destinado a filtrar ciertos detalles del automóvil antes de agregarlo a la base de datos. En lo que estoy atascado actualmente es en cómo se supone que debo omitir la división de los modelos dentro del paréntesis.
Ejemplo:
"v70, 790, v50 (v40, v44), v22"Rendimiento esperado:
[ "v70", "790", "v50 (v40, v44)", "v22" ] De modo que el , dentro de los paréntesis no se tenga en cuenta en la división. ¡Cualquier ayuda y sugerencias son muy apreciadas!
Puede usar el método preg_split() para esto ( documentación ). Puede usar esto para dividir la cadena en función de un patrón de expresiones regulares para valores separados por comas, pero se ignora si están entre paréntesis.
Este código funciona para tu ejemplo:
<?php $string = 'v70, 790, v50 (v40, v44), v22'; $pattern = '/,(?![^(]*\)) /'; $splitString = preg_split($pattern, $string); La salida de $splitString se ve así:
array (size=4) 0 => string 'v70' (length=3) 1 => string '790' (length=3) 2 => string 'v50 (v40, v44)' (length=14) 3 => string 'v22' (length=3)