1.打印信息,方便排错
function debug($data){
if(empty($data)){
var_dump($data);
die;
}
if(!is_array($data)){
echo "<pre style='background-color: #000;color: #fff;font-size: 14px;min-height: 100px;line-height: 50px;'>";
echo "<span style='margin-left: 20px;font-size: 18px;'>";
print_r($data);
echo "</span>";
echo "</pre>";
die;
}
echo "<pre style='background-color: #000;color: #fff;font-size: 14px;min-height: 100px;'>";
echo "<br /><br /><br /><span style='margin-left: 20px;font-size: 13px;'>";
print_r($data);
echo "</span><br /><br /><br />";
echo "</pre>";
die;
}
debug("123");
2.获取父子关系树
/* @param $data array 数据
* @param $pid int 父类关系值
* @param $parentFieldstring 父类字段
* @param $pkField string 主键字段
* return array
*/
function getTreesPro($data,$pid='0',$parentField='pid',$pkField='id'){
$tree =array();
foreach($data as $k=>$v){
if($v[$parentField] == $pid){
$temp = getTreesPro($data,$v[$pkField]);//$data是对象则改为$v->$pkField
if(!empty($temp)){
//分层
$v['son']= getTreesPro($data,$v[$pkField]);
}
$tree[] = $v;
}
}
return $tree;
}
3.数组转对象和对象转数组
//数组转对象
function arrayToObject($arr){
if(is_array($arr)){
return (object) array_map(__FUNCTION__, $arr);
}else{
return $arr;
}
}
//对象转数组
function object2array(&$object) {
$object = json_decode( json_encode( $object),true);
return $object;
}
4.生成唯一订单
function generateJnlNo() {
date_default_timezone_set('PRC');
$yCode = array('A','B','C','D','E','F','G','H','I','J');
$orderSn = '';
$orderSn .= $yCode[(intval(date('Y')) - 1970) % 10];
$orderSn .= strtoupper(dechex(date('m')));
$orderSn .= date('d').substr(time(), -5);
$orderSn .= substr(microtime(), 2, 5);
$orderSn .= sprintf('%02d', mt_rand(0, 99));
return $orderSn;
}
5.已过去时间计算
function nicetime($date){
if(empty($date)) { return "No date provided"; }
$periods = array("秒","分钟","小时","天","周","月","年","decade");
$lengths = array("60","60","24","7","4.35","12","10");
$now = time();
$unix_date = $date; // check validity of date
if($now-$unix_date > 86400*7-1){
return 'error';
}
if(empty($unix_date)) { return "Bad date"; } // is it future date or past date
if($now > $unix_date) {
$difference = $now - $unix_date; $tense = "之前";
}else{
$difference = $unix_date - $now; $tense = "from now";
}
for($j = 0; $difference >= $lengths[$j] && $j < count($lengths)-1; $j++) {
$difference /= $lengths[$j];
}
$difference = round($difference);
if($difference != 1) { $periods[$j].=""; }
return "$difference$periods[$j]{$tense}";
}
echo nicetime(1545642821);
6.获取文件目录文件名
function getdir($path,$save=false){
$arr=array();
if(is_dir($path)){
$path=str_replace('\\', '/', $path);
$path=rtrim($path,'/');
$dir = opendir($path);
$ar=array('.','..');
while(($file=readdir($dir))!==false){
if(!in_array($file,$ar)){
if($save){
$save=rtrim($save,'/');
//$save=ltrim($save,'/');
$arr[]=$save.'/'.$file;
}else{
$arr[]=$file;
}
}
}
closedir($dir);
}
return $arr;
}
7.中英文字符截取成数组
function mb_str_split ($string, $len=1) {
$start = 0;
$strlen = mb_strlen($string);
while ($strlen) {
$array[] = mb_substr($string,$start,$len,"utf8");
$string = mb_substr($string, $len, $strlen,"utf8");
$strlen = mb_strlen($string);
}
return $array;
}
debug(mb_str_split("时候shf山地sd"));