I need to split this (PHP)
$var = XXXXXX31,72YYYYYY32,73DDDDDD33,74
to result
[0] => XXXXXX31,72
[1] => YYYYYY32,73
[2] => DDDDDD33,74
I am using function preg_split
with pattern ('/(?=[a-z]+)(?<=[0-9])/i',$var);
But it is returning
[0] => 31,72
[1] => XXXXXX32,73
[2] => YYYYYY33,74
[3] => DDDDDD
I've made assumptions about how you actually want to split the string. If this isn't what you want, you'll have to tell us what behavior you actually intended.
$input = "TIPO DISCRIMINAÇÃO PRAZO VALOR1.923,11VENCIMENTO BASICORENDIMENTOS230,77ANUENIO - ART.244, LEI 8112/900013.596,99GRATIFICACAO NATALINA93,65FGR-FUNC GRATIFICADA L 8216/91155,46GRAT.DESEMP.FUNCAO-GADF LD.13368,58AUXILIO-TRANSPORTE955,20GDPGPE - LEI 11.784/2008 AT238,80GDPGPE - LEI 11.784/2008 AT0011.568,44ADIANT.GRATIF.NATALINA/ATIVO123,45";
$matches = [];
preg_match_all("/.*?[\\d.]+,\\d{2}/", $input, $matches);
print_r($matches[0]);
// Output:
// Array
// (
// [0] => TIPO DISCRIMINAÇÃO PRAZO VALOR1.923,11
// [1] => VENCIMENTO BASICORENDIMENTOS230,77
// [2] => ANUENIO - ART.244, LEI 8112/900013.596,99
// [3] => GRATIFICACAO NATALINA93,65
// [4] => FGR-FUNC GRATIFICADA L 8216/91155,46
// [5] => GRAT.DESEMP.FUNCAO-GADF LD.13368,58
// [6] => AUXILIO-TRANSPORTE955,20
// [7] => GDPGPE - LEI 11.784/2008 AT238,80
// [8] => GDPGPE - LEI 11.784/2008 AT0011.568,44
// [9] => ADIANT.GRATIF.NATALINA/ATIVO123,45
// )
here you go Try this + there is a typo in your input, i think you meant to have 6 X's instead of 5.
$var = 'XXXXX31,77YYYYYY32,77DDDDDD33,77';
$array = explode('77',$var);
$array = array_filter($array); // remove empty elements
for ($i = 0; $i < count($array); $i++)
{
$array[$i] .= '77';
}
echo "<pre>";
print_r($array);
echo "</pre>";
outputs
Array
(
[0] => XXXXX31,77
[1] => YYYYYY32,77
[2] => DDDDDD33,77
)