2011-06-25 42 views
-1
59516,?O?L?h,27,80,67,13,1,84.6,40,4,1,32632,??,3,5,32640,AES,3,5,32210,\ 
???i?Z??,1,1.2,32263,?,1,1.2,3?T,1,1.2,32104,,1,1,40012,??,1,0.8 

我將如何分解/列出此行並拉出包含五個字符的數字及其緊前面的字段的任何字段?CSV解析+ multidim陣列

$data['59516']['i']將包含與

(32632=>1, 32640=>5, 32210=>5, 32263=>1.2,32104=>2, 40012=>1) 

回答

1

不知道我完全理解你的問題一個數組,但它聽起來像是你想要的東西,如:

$items = str_getcsv($commaSeparatedList); 
for ($i = 0; $i < count($items); $i++) { 
    if (strlen($items[$i]) == 5 && is_numeric($items[$i])) { 
      var_dump($items[$i]); // current match 
     if (isset($items[$i-1])) { 
      var_dump($items[$i-1]); // item and one before it 
     } 
    } 
} 
+0

我也應該做is_int和其他的東西嗎?我將如何foreach每一行? – jmoon

+0

你可以檢查is_numeric($ items [$ i]) – rkulla

0

(?<=,)(\d+),(\d{5})

$matches[1]有價值和$matches[2]有你的鑰匙。