$data = User::find()
->select('id, name')
->where(['status' => 'active'])
->orderBy('id DESC')
->asArray()
->all();
[
[0]=>[
id=>1
name="test"
]
[1]=>[
id=>2
name="test1"
]
]
我想要的是与此类似的数组。将id映射到名称,以便可以访问和检查它。
[
[1]=>'test'
[2]=>'test1'
]
答案 0 :(得分:2)
您可以在查询中使用indexBy()
和column()
来直接获得所需的输出,而不是使用ArrayHelper:
$data = User::find()
->select(['name', 'id'])
->where(['status' => 'active'])
->orderBy(['id' => SORT_DESC])
->indexBy('id')
->asArray()
->column();
答案 1 :(得分:1)
试试这个 添加以下命名空间并使用Yii2的arrayhelper映射
use yii\helpers\ArrayHelper
$userdata = ArrayHelper::map($data, 'id', 'name');