这个语句给了我在Drupal中想要的值(即最后一个用户角色):
global $user; return (end($user->roles));
但我需要将其转换为以下格式:
return array(
0 => array('value' => value for value),
// You'll usually want to stop here. Provide more values
// if you want your 'default value' to be multi-valued:
1 => array('value' => value for value),
2 => ...
);
我不知道如何(这也是一种多维数组吗?)...
有什么想法吗? 感谢您的任何帮助,Theo。
答案 0 :(得分:0)
我不确定你的目标是什么。对于记录,$ user->角色的形式是
array(
rid => 'role_name',
...
)
使用上面的语句,您实际上并没有获得迟到的用户角色,而是具有最高ID的用户角色。
我猜你想得到这样的格式,你不能清楚这个。
array(
0 => array(rid => 'role_name'),
1 => array(rid => 'role_name'),
...
)
如果是这种情况,您可以使用简单的foreach循环来获取它:
$result = array();
foreach ($user->roles as $key => $value) {
$result[] = array($key => $value);
}
return $result;
答案 1 :(得分:0)
为什么不简单:
global $user;
print_r($user->roles);
这将显示用户角色。我不确定你为什么要最后一个。它已经以您要求的格式返回。从那里到你,以提取你正在寻找的角色。
将它们移动到键控数组中:
global $user;
$result = array();
foreach ($user->roles as $key => $value) {
$result[] = array($key => $value);
}
return $result;
答案 2 :(得分:0)
感谢您的帮助 - 您现在让我更加了解这一点。事实证明它不起作用,因为你必须使用ID号而不是名字。所以最终的代码是:
global $user;
return array(
0 => array('value' => end($user->roles))
);
所以我猜你要建立一个多维数组呢?为此,格式正确......