各位大侠,小白求教! 我有一个数据表里的一个字段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;
}