我有一个类方法,它以multidimension方式返回结果。我正在使用的方法是。
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的本机功能来处理这个问题?
谢谢
答案 0 :(得分:3)
如果与PDO::FETCH_COLUMN
选项一起使用,fetchAll
函数就可以达到这个目的:
$roles = $sth->fetchAll(PDO::FETCH_COLUMN);
return $roles;
答案 1 :(得分:3)
更改此行代码
$roles[] = array($row['role_id']);
到
$roles[] = $row['role_id'];
getUserRoles
方法中的