如何将多维数组合并到单维数组?

时间:2011-07-15 11:29:53

标签: php arrays multidimensional-array

我有一个类方法,它以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的本机功能来处理这个问题?

谢谢

2 个答案:

答案 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方法

中的