获取结果集,其中一列作为索引,另一列作为Yii2

时间:2016-04-11 01:47:38

标签: php mysql yii2

我有一个包含以下结构的表

+-------------+------+
| date        | price|
+-------------+------+
| 2014-02-19  |   34 |
| 2014-02-20  |   30 |
| 2014-02-21  |   28 |
+-------------+------+

如果我使用PDO :: FETCH_ASSOC,我可以用以下格式更改关联数组,

array(
  0=> array(
    "date" =>  2014-02-19 ,
    "price" => 34
),
 1=> array(
    "date" =>  2014-02-20 ,
    "price" => 30
)

)

进入这个..

array(
"2014-02-19" => 34,
"2014-02-20" => 30,
"2014-02-21" => 28
)

使用这段代码:

$results = array();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    $results[$row['date']] = $row['price'];
}

我是Yii的新手,使用Active Records在Yii2中实现相同目标的最佳方法是什么。 (或使用yii\db\query

1 个答案:

答案 0 :(得分:2)

您可以这样做:

$models = YourModel::find()->all();
$results = ArrayHelper::map($models, 'date', 'price');

或者您可以循环AR结果,如:

$results = [];
foreach($models as $model) {
    $results[$model->date] = $model->price;
}