【问题标题】:Yii2 Array sortingYii2 数组排序
【发布时间】:2016-09-07 09:17:37
【问题描述】:

在我的 Yii2 项目中,我有一个数组,例如

$array = [];    
$array [] = 8 , 3, 6

所以当我打印出数组时

[8,3,6]

因此,当我在 where 语句中使用相同的语句时,它会变得混乱。

$class = ModelClass::find()->where(['array_no' => $array])->all

所以当我打印出类时,我会按 asc 顺序排序输出。 我得到了

的信息
  • 第3个
  • 6位居第二
  • 8 位列第三。

我怎样才能阻止这种情况发生。我希望他们以与数组相同的顺序返回我的输出

【问题讨论】:

标签: arrays sorting yii2


【解决方案1】:

您应该使用ORDER BY FIELD(),例如:

$models = ModelClass::find()
  ->where(['array_no' => $array])
  ->orderBy(new \yii\db\Expression('FIELD (array_no, '.implode(',', $array).')'))
  ->all();

【讨论】:

  • 是的,但是当我使用 yii/db/expression 时它会抛出一个未定义的函数调用
猜你喜欢
  • 1970-01-01
  • 2022-01-06
  • 1970-01-01
  • 1970-01-01
  • 2014-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-01
相关资源
最近更新 更多