Yii Php:获取在关联数组中具有特定键的值

时间:2013-10-07 07:04:31

标签: php arrays yii foreach key

我有一个看起来像这样的模型/数据库表

id | group_id| first_name | middle_name | last_name
------------------------------------------------------ 
   |          |            |             |      
------------------------------------------------------

从数据库中检索模型后:

说:

$people = PersonModel::model()->findAllByAttributes(array('group_id'=>$groupId));

并假设我检索了10行..匹配给定的groupId

我想存储匹配的10行中的所有first_name。

我知道这可以通过以下方式完成:

$personArray = array();
foreach($people as $person){
   $personArray[] = $person->first_name;
}

但还有另一种方式,例如一个PHP功能,做同样的事情?谢谢!

2 个答案:

答案 0 :(得分:3)

$criteria = new CDbCriteria;
$criteria->compare('group_id', $groupId);
$criteria->limit = 10;
$people = PersonModel::model()->findAll($criteria);
$personArray = $list = CHtml::listData($people, 'id','first_name');

CHtml :: listData()返回关联数组,其中包含:['id'] => 'first_name'(模型的属性)

答案 1 :(得分:0)

您可以先计算与group_id匹配的模型,例如:

PersonModel ::模型() - > countByAttributes(阵列( 'GROUP_ID'=> $的groupId));

然后你可以将它限制为10并命令它desc并获得匹配的最新10行!

Yii : how to count records in a model?