如何在Codeigniter / PHP中合并两行并获取单个数组?

时间:2017-04-14 12:18:15

标签: php mysql codeigniter phpmyadmin codeigniter-3

我正在使用Codeigniter为单个用户分配多个角色。为此,我创建了一个包含以下值的表。

.btn-default {
  max-width: 50px;
  text-overflow: ellipsis;
  overflow: hidden;
}

但是,在数据库中我有多行,我需要通过这样的验证来获取值

    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
)

我的表就像这样

MySqlTable

我需要验证并获取单个数组。

1 个答案:

答案 0 :(得分:1)

根据我的评论,我会建议您在控制器中执行此类操作:

// 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;
            }
        }
    }
}

这只是我打字输出,所以没有测试过,可能会有一些拼写错误。希望能帮助到你。可能有更有效的方法来做到这一点,但如果你只处理几行,那就没关系了。