2011-09-26 111 views
0

我的數據變量如下:爆炸數據/把它轉換爲PHP的陣列

canv = 2,3,4,5:::canp = 2,3,4:::canpr = 2,3,4:::canpp = 2,3,4:::all = 2,3,4 

我需要它轉變成一個數組看起來應該如下:

$arr = array(
"canv" => array("2", "3", "4", "5"), 
"canp" => array("2", "3", "4"), 
"canpr" => array("2", "3", "4"), 
"canpp" => array("2", "3", "4"), 
"all" => array("2", "3", "4") 
); 

你能幫助我嗎?

回答

1
$data = "canv = 2,3,4,5:::canp = 2,3,4:::canpr = 2,3,4:::canpp = 2,3,4:::all = 2,3,4"; 
$result = array(); 
foreach (explode(':::', $data) as $line) { 
    list($part1, $part2) = explode(' = ', $line); 
    $result[$part1] = explode(',', $part2); 
} 
+0

謝謝。但現在,我想讀取數組中是否存在該鍵:if(isset($ result [「canv」] [$ gid]))(其中$ gid是數組中的組ID),但它不工作,因爲數組看起來像這樣: 'array(「canv」=> array(1 =>「2」,2 =>「3」,3 =>「4」,4 =>「5」); '我需要它看起來像這樣: 'array(「canv」=> array(「2」,「3」,「4」,「5」);' 它怎麼能完成了嗎? – Lucas

+0

'if(isset($ result ['canv'])&& in_array($ gid,$ result ['canv']))' – nachito

+0

'你不能讓數組看起來像'array(「2」,「3 「,」4「,」5「),必須有索引。 – nachito

0
$orig_str = 'canv = 2,3,4,5:::canp = 2,3,4:::canpr = 2,3,4:::canpp = 2,3,4:::all = 2,3,4'; 

$parts = explode(':::', $orig_str); 

$data = array() 
foreach($parts as $key => $subparts) { 
    $data[$key] = explode(',', $subparts); 
} 
+1

你忘了按「=」分割 – halfdan

+1

Woops ...正確。嗯,我會把數學教科書的方式拿出來,並說這是作爲練習給讀者的。 –

0

我會嘗試這樣的事:這不是測試,嘗試的print_r調試

$string = "canv = 2,3,4,5:::canp = 2,3,4:::canpr = 2,3,4:::canpp = 2,3,4:::all = 2,3,4"; 

$pieces = explode(':::',$string); 
$result = array(); 
foreach($pieces AS $piece) 
{ 
    $tmp = explode(' = ',$piece); 
    $result[$tmp[0]] = explode(',',$tmp[1]); 
} 
1

下應該做的伎倆:

$data = "canv = 2,3,4,5:::canp = 2,3,4:::canpr = 2,3,4:::canpp = 2,3,4:::all = 2,3,4"; 
$items = explode(":::", $data); 
$arr = array(); 
foreach($items as $item) { 
    $item = explode(" = ", $item); 
    $arr[$item[0]] = explode(",", $item[1]); 
} 
+0

謝謝。但現在,我想讀取數組中是否存在該鍵:if(isset($ result [「canv」] [$ gid]))(其中$ gid是數組中的組ID),但它不工作,因爲數組看起來像這樣: 'array(「canv」=> array(1 =>「2」,2 =>「3」,3 =>「4」,4 =>「5」); '我需要它看起來像這樣: 'array(「canv」=> array(「2」,「3」,「4」,「5」);' 怎麼辦? – Lucas