2011-07-15 80 views
1

我有一个类方法,它返回多维的结果。我正在使用的方法是。如何合并多维数组到单维数组?

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的本地功能来照顾这个?

谢谢

回答

3

如果与PDO::FETCH_COLUMN选项中使用的fetchAll功能服务于这一确切目的:

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

哦耶,听起来很棒,很简单谢谢乔恩:) –

+0

谢谢!我正要问这个问题。 – octern

3

更改这行代码

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

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

in getUserRoles方法