PHP массив группировать по значениям данных - PullRequest
0 голосов
/ 27 сентября 2011

Это моя переменная $ data:

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

Теперь мне нужна некоторая функция, где я могу добавить число в качестве параметра (число будет значением $ data number).

например.

function getPermission($id) {

... return $something;
}

Тогда, если я вызову функцию наподобие echo getPermission(4);, она выведет «ключи» данных, где 4 будет внутри, как значение.

Итак, чтобы быть ясным:

если я вызову функцию следующим образом:

echo getPermission(4); вывод будет "cv" и "cpt".

но если я назову это так:

echo getPermission(1);

будет выводиться только "cv", потому что число (1) находится в ключе cv.

Надеюсь, вы, ребята, понимаете, не стесняйтесь спрашивать, если что-то недостаточно ясно.

1 Ответ

4 голосов
/ 27 сентября 2011
$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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...