您好,我是FuelPHP的新手。我是一个使用ACL的演示版。我从数据库中获取了所有角色,格式为下面的代码
$data = array(
array('admin'=>array(
'none' => array(
'crudform' => array('create','index')
)
)),
array('admin'=>array(
'none' => array(
'cruddept' => array('create','view')
)
)),
);
现在我想将该数组转换为格式为
$data = array(
'admin' => array(
'none'=>array(
'crudform' => array(
'create',
'index'
),
'cruddept'=>array(
'create',
'view'
)
)
)
)
我怎么能这样做?
答案 0 :(得分:0)
从数据库中检索数据后,您可以使用与此类似的函数转换数组
function change_array($data)
{
$result = array('admin' => array('none' => array()));
foreach ($data as $key => $value)
foreach ($data[$key]['admin']['none'] as $key_child => $value_child)
$result['admin']['none'][$key_child] = $value_child;
return $result;
}
您需要做的就是像这样使用它
$data = change_array($data);
答案 1 :(得分:0)
谢谢Khalid先生,您的想法为我提供了解决方案的方法。我找到了按照自己的意愿构建数组的方法。这是我的代码
function build_role_array($roles){
$final = array();
foreach($roles as $row){
foreach($row as $role=>$value){
if(!isset($final[$role])){
$final[$role] = array();
}
foreach($value as $module=>$area){
if(!isset($final[$role][$module])){
$final[$role][$module] = array();
}
foreach($area as $controller=>$rights){
$final[$role][$module][$controller] = $rights;
}
}
}
}
return $final;
}
感谢您的支持