PHP数组按数据值

时间:2011-09-27 06:42:04

标签: php arrays grouping

这是我的$ data变量:

  

cv = 1,2,3,4,5 ::: cpt = 4,5 ...

现在我需要一些功能,我可以在其中添加数字作为参数(数字将是$ data number value)。

例如。

function getPermission($id) {

... return $something;
}

然后,如果我将函数调用为:echo getPermission(4);,它将打印出4个将在其中的数据“键”作为值。

所以,要明确:

如果我这样调用函数:

echo getPermission(4);输出将是“cv”和“cpt”。

但如果我这样称呼它:

echo getPermission(1);

它只会输出“cv”,因为number(1)位于cv键中。

希望你们明白,随便问一下有什么不够清楚。

1 个答案:

答案 0 :(得分: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;
}