| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 | <?php// 应用公共文件/** * 数据库查询结果集无限级分类 * @param mixed $list 结果集 * @param string $pk 主键 * @param string $pid 父级字段名 * @param string $child 子结果集 * @param int $root 起始id * @return @return array */function list_tree($list, $pk = 'id', $pid = 'pid', $child = 'child', $root = 0){    $tree = [];    foreach ($list as $key => $val) {        if ($val[$pid] == $root) {            unset($list[$key]);            if (!empty($list)) {                $children = list_tree($list, $pk, $pid, $child, $val[$pk]);                $val[$child] = $children;            }            array_push($tree, $val);        }    }    return $tree;}function make_tree($list, $pk = 'id', $pid = 'pid', $child = 'child', $root = 0){    $tree=array();    foreach ($list as $key => $val) {        if ($val[$pid]==$root) {            unset($list[$key]);            if (!empty($list)) {                $child = make_tree($list, $pk, $pid, $child, $val[$pk]);                if (!empty($child)) {                    $val['child']=$child;                } else {                    $val['child']= array();                }            }            $tree[]=$val;        }    }    return $tree;}/** * 获取指定月份的第一天开始和最后一天结束的时间戳 * * @param int $y 年份 $m 月份 * @return array(本月开始时间,本月结束时间) */function month_frist_and_last_day($y = "", $m = ""){    if ($y == "") $y = date("Y");    if ($m == "") $m = date("m");    $m = sprintf("%02d", intval($m));    $y = str_pad(intval($y), 4, "0", STR_PAD_RIGHT);     $m>12 || $m<1 ? $m=1 : $m=$m;    $firstday = strtotime($y . $m . "01000000");    $firstdaystr = date("Y-m-01", $firstday);    $lastday = strtotime(date('Y-m-d 23:59:59', strtotime("$firstdaystr +1 month -1 day")));     return [ "firstday" => $firstday, "lastday" => $lastday];}
 |