循环遍历数组

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']

这个想法真的很有帮助


汪汪一只猫
浏览 88回答 2
2回答

紫衣仙女

array_column为此制作的:$results = array_column($results, 'perm_desc');

呼如林

我设法解决了这个问题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) } }
打开App,查看更多内容
随时随地看视频慕课网APP