Arrays 从Zend_Db_Table_抽象返回数组中选择?

Arrays 从Zend_Db_Table_抽象返回数组中选择?,arrays,zend-framework,Arrays,Zend Framework,此表单的简单选择: $select = $this->select(); return $rowset = $this->fetchAll($select); 现在,数组中有一个inherit列,因此表的形式如下: id | role | inherits | 1 | admin | 2 | 2 | player | 3 | 当显

此表单的简单选择:

            $select = $this->select();
            return $rowset = $this->fetchAll($select);
现在,数组中有一个inherit列,因此表的形式如下:

   id   |   role   |   inherits   |
   1    |   admin  |    2         |
   2    |   player |    3         |
当显示时,我希望inherirs列显示它实际继承的角色,而不是id

Zend_Db_Table_Abstract返回的数组非常复杂,所以我不能说:

$array[0][inherits]

首先,$this->fetchAll不会返回数组,它将返回
Zend\u Db\u Table\u Rowset\u Abstract
对象。您可以在这里了解更多信息

您可以将数据作为对象从中获取

// use Zend_Db_Table_Row_Abstract object
$array[0]->inherits
或者,如果要获取阵列,可以执行以下操作:

// get rowset and convert it to array
$rowset = $this->fetchAll($select);
$data = ($rowset) ? $rowset->toArray() : array();

更好的解决方案是在同一个表上编写一个左连接,在不使用任何PHP代码的情况下获取数据集中的角色

$sql = $this->getAdapter()->select()
        ->from(array('r1' => 'your_roles_table'), '*')
        ->joinLeft(array('r2' => 'your_roles_table'), 'r2.id = r1.inherits', array(
            'inherits_role' => 'r2.role',
        ));

$data = $this->getAdapter()->fetchAll($sql);
var_dump($data);