我正在编写Codeigniter,用于为单个用户分配多个角色。为此,我创建了一个具有以下值的表。
Array
(
[Id] => 1
[Store_address_id] =>
[Customer_ref_id] => 193
[Role_ref_id] => 1
[Email_alert] => 0
[Sms_alert] => 0
[Admin_view] => 0
[Admin_save] => 0
[Admin_delete] => 0
[Master_view] => 1
[Master_save] => 1
[Master_delete] => 1
[Business_view] => 0
[Business_save] => 0
[Business_delete] => 0
[Analytics_view] => 1
[Analytics_delete] => 1
[Analytics_save] => 1
[Promotion_view] => 1
[Promotion_save] => 1
[Promotion_delete] => 1
)但是,在数据库中,我有多个行,因此我需要像下面这样的验证来获得值
+----+----+----+
| i/p|i/p | o/p|
+----+----+----+
| 0 | 0 | 0 |
+----+----+----+
| 1 | 1 | 1 |
+----+----+----+
| 1 | 0 | 1 |
+----+----+----+
| 0 | 1 | 1 |
+----+----+----+我的桌子是这样的

我需要验证并将其作为一个数组进行提取。
发布于 2017-04-14 13:57:00
按照我的意见,我建议在您的控制器中这样做:
// set a permissions array and set to default values of 0
$permissions = array(
'Email_alert' => 0,
'Sms_alert' => 0,
'Admin_view' => 0,
'Admin_save' => 0,
'Admin_delete' => 0,
'Master_view' => 0,
'Master_save' => 0,
'Master_delete' => 0,
'Business_view' => 0,
'Business_save' => 0,
'Business_delete' => 0,
'Analytics_view' => 0,
'Analytics_delete' => 0,
'Analytics_save' => 0,
'Promotion_view' => 0,
'Promotion_save' => 0,
'Promotion_delete' => 0,
);
// get the rows
foreach ($results as $row) {
// get each col name and value
foreach ($row as $key => $value) {
// make sure it is a value needed for the permissions array
if(isset($permissions[$key])) {
// this value is a permissions value, is it a 1
if ($value == 1) {
// set the permissions array to 1
$permissions[$key] = 1;
}
}
}
}这只是我输入它,所以没有测试它,可能有一些错误的。希望它有帮助。可能有更有效的方法来做到这一点,但是如果您只处理几行,就可以了。
https://stackoverflow.com/questions/43411375
复制相似问题