【问题标题】:Yii Php: Getting values having a specific key in an associative arrayYii Php:在关联数组中获取具有特定键的值
【发布时间】:2013-10-07 07:04:30
【问题描述】:

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

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函数?谢谢!

【问题讨论】:

    标签: php arrays yii foreach key


    【解决方案1】:
    $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'(模型的属性)

    【讨论】:

      【解决方案2】:

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

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

      然后您可以将其限制为 10 并对其进行降序排序并获取匹配的最新 10 行!

      Yii : how to count records in a model?

      【讨论】:

        猜你喜欢
        • 2021-03-16
        • 1970-01-01
        • 1970-01-01
        • 2015-08-05
        • 2017-09-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-10
        • 2011-06-20
        相关资源
        最近更新 更多