Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays Yii2数组排序_Arrays_Sorting_Yii2 - Fatal编程技术网

Arrays 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排在第三位 我怎样才能阻止这一切的发生。我

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

$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时,它会抛出一个未定义的函数调用