thinkphp 获取数据集 和 获取单挑数据
list_to_tree 在导航等用的多
int_to_string将数字 转换为字符串 在一些 什么 男女 状态等地方用的多
方便
/*
* 获取数据集
* */
function get_result($Model,$map=array(),$field='',$order='',$limit=0,$group='',$having=''){
if(is_string($Model)){
$Model = M($Model);
}
if($limit==0){
$limit='';
}
$result=$Model->where($map)->field($field)->order($order)->group($group)->having($having)->limit($limit)->select();
if(C('SESSION_SQL')){
session('sql',$Model->getLastSql());
}
//echo $Model->getLastSql().'
';
return $result;
}
/*
* 获取单条数据
* */
function get_info($Model,$map=array(),$field=array(),$order=''){
if(is_string($Model)){
$Model=M($Model);
}
$result=$Model->where($map)->field($field)->order($order)->find();
if(C('SESSION_SQL')){
session('sql',$Model->getLastSql());
}
return $result;
}
/**
* 将返回的数据集转换成树
* @param array $list 数据集
* @param string $pk 主键
* @param string $pid 父节点名称
* @param string $child 子节点名称
* @param integer $root 根节点ID
* @return array 转换后的树
*/
function list_to_tree($list, $pk = 'id', $pid = 'pid', $child = '_child', $root=0) {
$tree = array();// 创建Tree
if(is_array($list)) {
// 创建基于主键的数组引用
$refer = array();
foreach ($list as $key => $data) {
$refer[$data[$pk]] =& $list[$key];
}
foreach ($list as $key => $data) {
// 判断是否存在parent
$parentId = $data[$pid];
if ($root == $parentId) {
$tree[$data[$pk]] =& $list[$key];
}else{
if (isset($refer[$parentId])) {
$parent =& $refer[$parentId];
$parent[$child][] =& $list[$key];
}
}
}
}
return $tree;
}
/**
* select返回的数组进行整数映射转换
*
* @param array $map 映射关系二维数组 array(
* '字段名1'=>array(映射关系数组),
* '字段名2'=>array(映射关系数组),
* ......
* )
* @author wuhao
* @return array
*
* array(
* array('id'=>1,'title'=>'标题','status'=>'1','status_text'=>'正常')
* ....
* )
*
*/
function int_to_string(&$data,$map=array('gender'=>array(1=>'男',0=>'女'),'status'=>array(1=>'正常',-1=>'删除',0=>'禁用',2=>'未审核',3=>'草稿'))) {
if($data === false || $data === null ){
return $data;
}
$data = (array)$data;
foreach ($data as $key => $row){
foreach ($map as $col=>$pair){
if(isset($row[$col]) && isset($pair[$row[$col]])){
$data[$key][$col.'_text'] = $pair[$row[$col]];
}
}
}
return $data;
}