Arrays Yii2数组排序
在我的Yii2项目中,我有一个数组Arrays Yii2数组排序,arrays,sorting,yii2,Arrays,Sorting,Yii2,在我的Yii2项目中,我有一个数组 $array = []; $array [] = 8 , 3, 6 所以当我打印出数组时 [8,3,6] 因此,当我在where语句中使用相同的语句时,它会变得混乱 $class = ModelClass::find()->where(['array_no' => $array])->all 因此,当我打印出类时,我会按asc顺序对输出进行排序。。 我得到了 3在第一 第二位是6 8排在第三位 我怎样才能阻止这一切的发生。我
$array = [];
$array [] = 8 , 3, 6
所以当我打印出数组时
[8,3,6]
因此,当我在where语句中使用相同的语句时,它会变得混乱
$class = ModelClass::find()->where(['array_no' => $array])->all
因此,当我打印出类时,我会按asc顺序对输出进行排序。。
我得到了
- 3在第一
- 第二位是6
- 8排在第三位
我怎样才能阻止这一切的发生。我希望它们以与数组相同的顺序返回我的输出您应该使用
按字段排序()
,例如:
$models = ModelClass::find()
->where(['array_no' => $array])
->orderBy(new \yii\db\Expression('FIELD (array_no, '.implode(',', $array).')'))
->all();
这在我的yii2语法中可能有用,但我不能在station中使用。但是你能像这样使用
orderBy
。只需使用数组创建一个表达式,并将其传递给order by语句即可。谢谢-Andrey Mischenkoye,但当我使用yii/db/expression时,它会抛出一个未定义的函数调用