2011-09-27 79 views
0

這是我的數據$變量:PHP陣列組值

CV = 1,2,3,4,5 ::: CPT = 4,5 ...

現在我需要一些函數,我可以將該數字作爲參數添加(數字將爲$數據編號值)。例如

function getPermission($id) { 

... return $something; 
} 

然後,如果我打電話的功能等:echo getPermission(4);它會打印出數據「鍵」,其中4會裏,作爲一種價值。

所以,要明確:

如果我調用該函數是這樣的:

echo getPermission(4);輸出將是 「CV」 和 「中華映管」。

但如果我這樣調用它:

echo getPermission(1);

它只會輸出 「CV」,因爲數(1)位於CV關鍵。

希望你們明白,隨意問,如果有什麼不夠清楚。

+0

你需要幫助解析'cv = 1,2,3,4,5 ::: cpt = 4,5 ...'嗎?如果不是,你有什麼格式? – six8

回答

4
$str = 'cv = 1,2,3,4,5:::cpt = 4,5'; 
$tmp = explode(':::', $str); 
$data = array(); 
foreach ($tmp as $arr) { 
    $tokens = explode(' = ', $arr); 
    $data[$tokens[0]] = explode(',', $tokens[1]); 
} 

print_r(getPermission(4, $data)); 
print_r(getPermission(1, $data)); 

function getPermission($id, $data) { 
    $out = array(); 
    foreach ($data as $key => $arr) { 
     if (in_array($id, $arr)) $out[] = $key; 
    } 
    return $out; 
} 
+0

這是正確的,但我不會獲取$ data作爲參數。他確實提到,該函數的輸入將只是$ id :) – Jeune

+0

好。但$ data是'cv = 1,2,3,4,5 ::: cpt = 4,5' ...,而不是數組。 – Lucas

+0

@Lucas我添加了一部分來解析字符串到數組中。 –