我已经使用ajax从视图向我的控制器发送数组,然后我想将它与我的模型进行比较。但是我不知道如何在使用ActiveQuery
时获取数组:
$riderAll = Riders::find()->select('user_id')->asArray()->all();
$tableData = array_diff($tableData, $riderAll);
将错误数组转换为字符串转换。告诉我$riderAll
有什么问题?请
答案 0 :(得分:2)
而不是在activeQuery中使用all()
..
您必须使用column()
来提供1-D数组,以便您可以轻松应用array_diff()
试试这段代码..
$riderAll = Riders::find()->select ('user_id')->asArray()->column();
$tableData = array_diff($tableData,$riderAll);
在上面,您使用all()
输出二维数组,因此array_dff()
不适用。询问是否发生其他问题..
答案 1 :(得分:1)
尝试使用数组进行选择
set
答案 2 :(得分:1)
我有解决方案我创建了一些功能来构建相同的结构:
$(this).next("input").show();
使用方法: function getArr($array, $key) {
$return = array();
foreach($array as $row) {
$return[] = $row[$key];
}
return $return;
}
然后 $arr = $this->getArr($riderAll, 'rider_id');