2011-01-06 106 views
0

我有一個數組包含的值,如:如何在PHP數組內爆炸陣列

Check_Value ('level_codes', '1000', '1001','(1000,1002,1004)', 'DO ', '1')==1 

我想要得到的值和存儲到其他parametrs,如:

$codes = level_codes; 
$first_value = 1000; 
$second_value = 1001; 
$list_values = (1000,1002,1004); 
$action = DO; 
$timer = 1; 
$case = ==; 
$status = 1; 

沒有任何一個請幫我做這個工作...!

+1

訂單總是一樣嗎? – Blam 2011-01-06 13:41:51

+0

上面似乎不是一個數組,更像是將大量參數傳遞給一個函數? – ajreal 2011-01-06 13:51:15

回答

0

如果訂單始終是相同的,下面將重新分配值到你想要的變量:

$parts = preg_split("/'?\(|\)'?/", $original_values); 
$sub1 = explode(',', $parts[1]); 
$codes = trim(str_replace("'", '', $sub1[0])) ; 
$first_value = trim(str_replace("'", '', $sub1[1])); 
$second_value = trim(str_replace("'", '', $sub1[2])); 
$list_values = "($parts[2])"; 
$sub2 = explode(',', $parts[3]); 
$action = trim(str_replace("'", '', $sub2[1])); 
$timer = trim(str_replace("'", '', $sub2[2])); 
preg_match('/(\D+)(\d+)/', $parts[4], $matches); 
$case = $matches[1]; 
$status = $matches[2]; 

有可能是一個更優雅的方式要做到這一點,但原始值是一個字符串,而不是一個數組。