2016-07-14 61 views
-3

我需要拆分這個(PHP)工作功能拆分PHP不給定模式

$var = XXXXXX31,72YYYYYY32,73DDDDDD33,74 

導致

[0] => XXXXXX31,72 
[1] => YYYYYY32,73 
[2] => DDDDDD33,74 

我使用的功能使preg_split

與模式('/(?=[a-z]+)(?<=[0-9])/i',$var);

但它回來了

[0] => 31,72 
[1] => XXXXXX32,73 
[2] => YYYYYY33,74 
[3] => DDDDDD 
+0

您的輸入沒有按不符合您的預期產出(或實際產出)。請分享實際的運行代碼。 – smarx

+0

什麼是分割規則?看來你需要將它分成固定大小的塊。如果這是真的,那麼['str_split()'](http://php.net/manual/en/function.str-split.php)是你需要的函數。 – axiac

+0

我解決了我的問題,請再讀一遍。 – user1629045

回答

0

我已經假設你真的想要分割字符串。如果這不是你想要的,你必須告訴我們你的實際意圖是什麼樣的行爲。

$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 
//) 
+0

不工作...請幫我分開這個字符串[0] => XXXXXX1.923,11YYYYY230,77爲1.923, 11YYYYYY – user1629045

+0

它*做*工作...我剛剛跑它。如果它沒有按照你想要的實際數據進行,你*真的需要告訴我們你正在使用的數據和你期望的輸出結果。 – smarx

+0

將此字符串[0] => XXXXXX1.923,11YYYYYY230,77分隔爲1.923,11YYYYYY – user1629045

0

在這裏你去試試這個+有一個在您輸入一個錯字,我想你的意思是有6分X的,而不是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>"; 

輸出

Array 
(
    [0] => XXXXX31,77 
    [1] => YYYYYY32,77 
    [2] => DDDDDD33,77 
) 
+0

很難知道,因爲原始問題沒有指定目標,但我的猜測是,當輸入爲「XXXXXX76,77YYYYYY77,77」時,這會產生錯誤的輸出。 '。 – smarx

+0

aha你是對的它沒有完全的功能,但讓我們聽到他的聲音 –

+0

77 variate對不起。; ...這是一個值,每次在逗號後改變 – user1629045