您的位置:首页 > 其它

在项目开发中经常用到的全局函数(持续更新)

2017-05-17 17:48 591 查看
//打印函数
function p($data , $type = 1, $die = false) {
echo '<pre>';
if($type == 1)
var_dump($data);
else
print_r($data);
echo '</pre>';
if($die) die;
}


//#####################################一些验证函数############################
// 是否合法的日期格式(Y-m-d)
function is_date($date = '') {
$time = strtotime($date);
return is_positive_integer($time) && date('Y-m-d', $time) == $date;
}

// 是否合法的日期时间格式(Y-m-d H:i:s)
function is_time($datetime = '') {
$time = strtotime($datetime);
return is_positive_integer($time) && date('Y-m-d H:i:s', $time) == $datetime;
}

// 是否正整数
function is_positive_integer($num = 0) {
return is_numeric($num) && $num == (int) $num && $num > 0;
}

// 是否非空字符串
function is_not_empty_string($str = '') {
return is_string($str) && $str != '';
}

// 是否非空数组
function is_not_empty_array($arr = array()) {
return is_array($arr) && !empty($arr);
}


//追加log日志
function add_file_log($txt = '',$del = false) {
if($del) unlink('log_info.txt');
file_put_contents('log_info.txt', $txt."\r\n", FILE_APPEND);
}


//################################数组的排序###############################
/**
* 按照指定键名对二维数组排序,若是要排序的字段中有重复值,此方法慎用
* $array  传过来的数组
* $key     指定的键名
* $type    指定的排序类型  asc  升序,desc 降序
*/
function orderArray ($array = array(), $key = 'id', $type = 'asc')
{
$arr        = array();
$list       = array();
foreach($array as $v){
$arr[$v[$key]]       = $v[$key];
$list[$v[$key]]      = $v;
}
if($type == 'asc'){
asort($arr);
}else{
arsort($arr);
}

$newarr     =array();
foreach($arr as $k => $v){
$newarr[]       =$list[$k];
}
return $newarr;
}
//要排序的key 有重复值
function RorderArray( $array = [], $key = '', $order = 'asc' ){

$sort = $order == 'asc' ? 'SORT_ASC' : 'SORT_DESC';
$arrSort = array();
foreach($array AS $uniqid => $row){
foreach($row AS $k=>$value){
$arrSort[$k][$uniqid] = $value;
}
}
array_multisort($arrSort[$key], constant($sort), $array);

return $array;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: