2011-09-27 75 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我添加了一部分来解析字符串到数组中。 –