为了账号安全,请及时绑定邮箱和手机立即绑定

循环遍历数组

循环遍历数组

PHP
汪汪一只猫 2022-06-17 14:40:53
array(4) {     [0]=> array(1)         { ["perm_desc"]=> string(10) "Can Delete" }     [1]=> array(1)         { ["perm_desc"]=> string(8) "Can Edit" }     [2]=> array(1)         { ["perm_desc"]=> string(10) "Can Create" }     [3]=> array(1)         { ["perm_desc"]=> string(16) "Can Manage Roles" } }我正在努力寻找循环这些数组的正确方法。所以基本上我已经从数据库中提取了所有权限,我希望它在 1 个单个数组中,这样我可以在需要时进行后期操作。但是数据库正在以乘法数组的形式输出这些数据。$results = static::customQuery($sql, ["role_id" => $role_id]);if ($results) {        foreach ($results as $r) {            var_dump($r);            die();}我只从包含 4 个数组的原始数组中得到 1 个结果array(1) { ["perm_desc"]=> string(10) "Can Delete" }但我真的想要这样的东西['Can Edit', 'Can Manage', 'Can Create', 'Can Manage Roles']这个想法真的很有帮助
查看完整描述

2 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

array_column为此制作的:

$results = array_column($results, 'perm_desc');


查看完整回答
反对 回复 2022-06-17
?
呼如林

TA贡献1798条经验 获得超3个赞

我设法解决了这个问题


static function results()

{

    if (static::exec()) {

        $results = static::$stmt->fetchAll();

        return $results;

   }

}

这是我的代码库的一部分,我将其更改为


static function results()

{

    if (static::exec()) {

        $results = static::$stmt->fetchAll(PDO::FETCH_ASSOC);

        return $results;

   }

}


by adding PDO::FETCH_ASSOC

我在我的角色课上循环了吗


$results = static::customQuery($sql, ["role_id" => $role_id]);

    if ($results) {

        foreach ($results as $result) {

            $role->permissions[$result["perm_desc"]] = true;

        }


    }

    var_dump($role);

    die();

现在我得到了想要的结果


    object(Core\Layers\Roles)#14 (1) { 

["permissions":protected]=> 

array(8) { 

["Can Delete"]=> bool(true) 

["Can Edit"]=> bool(true) 

["Can Create"]=> bool(true) 

["Can Manage Roles"]=> bool(true) 

["Can Backup"]=> bool(true) 

["Can Download"]=> bool(true) 

["Create Menu"]=> bool(true) 

["test"]=> bool(true) 

}


查看完整回答
反对 回复 2022-06-17
  • 2 回答
  • 0 关注
  • 87 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信