如何将多维数组合并到一维数组



我有一个以多维返回结果的类方法。我正在使用的方法是。

public function getUserRoles($userId) {
    $sth = $this->dbh->prepare('SELECT role_id FROM user_roles WHERE user_id = :userId');
    $sth->bindParam(':userId', $userId);
    $sth->execute();
    $roles = array();
    while($row = $sth->fetch(PDO::FETCH_ASSOC)) {
        $roles[] = array($row['role_id']);
    }
    return $roles;
}

当我调用

方法时
print_r($acl->getUserRoles(1));

我得到的返回结果集是。

Array ( [0] => Array ( [0] => 1 ) [1] => Array ( [0] => 2 ) [2] => Array ( [0] => 3 ) [3] => Array ( [0] => 4 ) [4] => Array ( [0] => 5 ) ) 

然而,我不希望返回的值是多维数组,相反,我希望上面的返回结果是。

Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )

是否有任何PHP的本地函数来处理这个?

谢谢

如果与PDO::FETCH_COLUMN选项一起使用,则fetchAll函数可以达到此目的:

$roles = $sth->fetchAll(PDO::FETCH_COLUMN);
return $roles;

修改这行代码

$roles[] = array($row['role_id']);

$roles[] = $row['role_id'];

in getUserRoles method

相关内容

  • 没有找到相关文章

最新更新