关于thinkphp mysql查询遇到的问题?

各位大侠,小白求教! 我有一个数据表里的一个字段u_id,里面的值分别有多个11 和 7 在thinkphp中怎么把相同数值归为一组比如11的一组,7一组输出? 排序是id自增的。 谢谢了!

提供一种思路,你可以先把11和7 的数据全部查出
例如:


        $data = db('export_record')->whereIn('u_id',['7','11'])->select();
        $uid = '';
        foreach ($data as $dat) {
            if ($uid != $dat['u_id']) {
                $uid = $dat['u_id'];
            }
            $new_datas[$uid][] = $dat;
        }
        $new_datas = array_values($new_datas);

我想你要的是$new_datas 这样的格式对吗

如果你还要在分组后再做个组内排序,
可以继续处理new_datas 的格式:

foreach ($new_datas as &$array) {
    $array = arraySort($array, 'id', $sort = SORT_DESC);
}

这里的arraySort 函数为:

/**
 * 二维数组根据某个字段排序
 * @param array $array 要排序的数组
 * @param string $keys 要排序的键字段
 * @param string $sort 排序类型  SORT_ASC     SORT_DESC
 * @return array 排序后的数组
 */
function arraySort($array, $keys, $sort = SORT_DESC)
{
    $keysValue = [];
    foreach ($array as $k => $v) {
        $keysValue[$k] = $v[$keys];
    }
    array_multisort($keysValue, $sort, $array);
    return $array;
}