将一个字段分成3个 php,整理几个方法
将一个线性数组转换为一个树,或者多维数组
function array_stack (&$a, $p = '@parent', $c = '@children')
{
$l = $t = array();
foreach ($a AS $key => $val):
if (!$val[$p]) $t[$key] =& $l[$key];
else $l[$val[$p]][$c][$key] =& $l[$key];
$l[$key] = (array)$l[$key] + $val;
endforeach;
return $a = array('tree' => $t, 'leaf' => $l);
}
$node = array();
$node[1] = array('@parent' => 0, 'title' => 'I am node 1.');
$node[2] = array('@parent' => 1, 'title' => 'I am node 2.');
$node[3] = array('@parent' => 2, 'title' => 'I am node 3.');
$node[4] = array('@parent' => 1, 'title' => 'I am node 4.');
$node[5] = array('@parent' => 4, 'title' => 'I am node 5.');
print_r(array_stack($node));
数据分页
function page_array($count,$page,$array,$order){
$page=(empty($page))?'1':$page; #判断当前页面是否为空 如果为空就表示为第一页面
$start=($page-1)*$count; #计算每次分页的开始位置
if($order==1){
$array=array_reverse($array); #函数返回翻转顺序的数组
}
$totals=count($array);
$countpage=ceil($totals/$count); #计算总页面数
$pagedata=array();
$pagedata=array_slice($array,$start,$count);
return $pagedata; #返回查询数据
}
二维数组分组
function array_group_by($arr, $key)
{
$grouped = [];
foreach ($arr as $value) {
$grouped[$value[$key]][] = $value;
}
if (func_num_args() > 2) {
$args = func_get_args();
foreach ($grouped as $key => $value) {
$parms = array_merge([$value], array_slice($args, 2, func_num_args()));
$grouped[$key] = call_user_func_array('array_group_by', $parms);
}
}
return $grouped;
}
根据日期获取星期
function get_week($date){ //强制转换日期格式
$date_str=date('Y-m-d',strtotime($date)); //封装成数组
$arr=explode("-", $date_str);
$year=$arr[0]; //月,输出2位整型,不够2位右对齐
$month=sprintf('%02d',$arr[1]);
$day=sprintf('%02d',$arr[2]); //时分秒默认赋值为0;
$hour = $minute = $second = 0; //转换成时间戳
$strap = mktime($hour,$minute,$second,$month,$day,$year); //获取数字型星期几
$number_wk=date("w",$strap); //自定义星期数组
$weekArr=array("星期日","星期一","星期二","星期三","星期四","星期五","星期六"); //获取数字对应的星期
return $weekArr[$number_wk];
}
计算 两个时间差
function timediff($begin_time,$end_time)
{
if($begin_time < $end_time){
$starttime = $begin_time;
$endtime = $end_time;
}else{
$starttime = $end_time;
$endtime = $begin_time;
}
//计算天数
$timediff = $endtime-$starttime;
$days = intval($timediff/86400);
//计算小时数
$remain = $timediff%86400;
$hours = intval($remain/3600);
//计算分钟数
$remain = $remain%3600;
$mins = intval($remain/60);
//计算秒数
$secs = $remain%60;
$res = array("day" => $days,"hour" => $hours,"min" => $mins,"sec" => $secs);
return $res;
}
递归遍历目录
function my_dir($dir) {
$files = array();
$e=mb_detect_encoding($dir,array('GB2312','GBK','UTF-8'));
$dir = mb_convert_encoding($dir,'GBK', $e);
if(@$handle = opendir($dir)) { //注意这里要加一个@,不然会有warning错误提示:)
while(($file = readdir($handle)) !== false) {
if($file != ".." && $file != ".") { //排除根目录;
$filename=$dir."/".$file;
if(is_dir($filename)) { //如果是子文件夹,就进行递归
$files[$file] =my_dir($filename);
} else {
$e=mb_detect_encoding($file,array('GB2312','GBK','UTF-8'));
$file = mb_convert_encoding($file,'GBK', $e);
$files[] = $file;
}
}
}
closedir($handle);
return $files;
}
}
读取文本内容
function auto_read($file, $charset='UTF-8') {
if (!file_exists($file)) {
return false;
} else {
if(filesize($file) <= 0) {
return false;
}
$list = array('GBK', 'UTF-8', 'UTF-16LE', 'UTF-16BE', 'ISO-8859-1');
$handle = fopen($file,"r");
$str = fread($handle,filesize($file));
foreach ($list as $item) {
$tmp = mb_convert_encoding($str, $item, $item);
if (md5($tmp) == md5($str)) {
return mb_convert_encoding($str, $charset, $item);
}
}
return false;
}
文件大小计算
function format_size($size)
{
$unit = 'B';
if ($size >= 1024) {
$size /= 1024;
$unit = 'KB';
}
if ($size >= 1024) {
$size /= 1024;
$unit = 'MB';
}
if ($size >= 1024) {
$size /= 1024;
$unit = 'GB';
}
if ($size >= 1024) {
$size /= 1024;
$unit = 'TB';
}
return round($size) . $unit;
}
中文字符串拆分
function split_cn($arr){
$re=array(); //定义接受字符串的数组
for($i=0;$i
if(mb_substr($arr,$i,1,"utf-8")==''){
continue;
}
$res[]=mb_substr($arr,$i,1,"utf-8"); //将单个字符存到数组当中
}
return $res;
}
本作品采用《CC 协议》,转载必须注明作者和本文链接
七述
将一个字段分成3个 php,整理几个方法相关推荐
- mysql 截取逗号并形成新的字段_MySQL将一个字段中以逗号分隔的取出来形成新的字段实现...
1例如:要把如图1的字段拆分图2 select account_id, substring_index(substring_index(a.related_shop_ids,"," ...
- 将一个正方形分成4个大小一样的小正方形,再将其中一个小正方形分成4个小正方形,如此类推,分割n次是几个正方形?
问题: 将一个正方形分成4个大小一样的小正方形,再将其中一个小正方形分成4个小正方形,如此类推,分割n次是几个正方形? 解答: 一次分割都是将一个分成4个,增加了3(1*3)个: ...
- linux 循环显示所有的sh.*文件.,利用shell脚本遍历文件夹内所有的文件并作整理统计的方法...
环境: Ubuntu下采用shell脚本实现 案例简述:文件夹内有许多子文件夹,这里需要自动读取所有的文件,包括他们的地址和文件名.通过观察文件名的规律,按照一定的规则裁剪出文件名的某一部分,该部分为 ...
- mysql添加字段uniquekey索引_MySQL数据库之mysql为字段添加和删除唯一性索引(unique) 的方法...
本文主要向大家介绍了MySQL数据库之mysql为字段添加和删除唯一性索引(unique) 的方法 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 1.添加PRIMARY KEY ...
- linux遍历目录删除指定文件,利用shell脚本遍历文件夹内所有的文件并作整理统计的方法-linux删除文件夹...
本篇文章扣丁学堂Linux培训小编给读者们分享一下利用shell脚本遍历文件夹内所有的文件并作整理统计的方法,文章具有很好的参考价值,感兴趣的小伙伴就随小编来了解一下吧. 环境: Ubuntu下采用s ...
- php mssql_result 255 string,PHP连接MSSQL时nvarchar字段长度被截断为255的解决方法
本文实例讲述了PHP连接MSSQL时nvarchar字段长度被截断为255的解决方法.分享给大家供大家参考.具体分析如下: PHP 连接 MSSQL 的新手经常遇到这个问题:数据库里面的 nvarch ...
- Eslint报错整理与解决方法(持续整理)
Eslint报错整理与解决方法(持续整理) 参考文章: (1)Eslint报错整理与解决方法(持续整理) (2)https://www.cnblogs.com/lunlunshiwo/p/859600 ...
- BOS12——多对多添加方法,多对多页面需要字段问题(不多的话直接提供get方法),修改Realm中授权方法(查询数据库),缓存Java对象的方法,加载左侧菜单(ztree提供pId)...
1.多对多添加方法 @Override public void add(Role model, String functionIds) {// 1.先将角色保存到数据库roleDao.save(mod ...
- 关于elasticsearch boostrap checks failed错误类型整理及解决方法
关于elasticsearch boostrap checks failed错误类型整理及解决方法 参考文章: (1)关于elasticsearch boostrap checks failed错误类 ...
最新文章
- sudo提权实战讲解 对用户对组的权限配置分析
- 独家 | 成功开发者必备的5项软技能
- python恶搞代码-搞笑的程序猿:看看你是哪种Python程序员
- python的一些 简单算法
- python-生成器函数进阶和各种推导式day15
- word中链接到目标后返回快捷键
- vue e-charts按需引入
- linux LyX中文编辑环境安装配置指南-TeX可视化工具
- 2019 第八/九周/十周 开发笔记
- 来自读者的面试题:谈谈Spring用到了哪些设计模式?
- js页面传值php页面,php实现跳转传值有什么方法,js页面跳转传值
- 【C++笔记】变量和基本类型
- Params属性的用法 (beginner)
- Microsoft Access 2002中文版标准培训教程pdf
- python mock server_Mock Server 入门
- 金融小白进阶记——金融加速器
- Flink Transformation
- Win10开机取消微软登录密码
- C++飞机票订票系统
- venn.diagram生成pdf图片
热门文章
- zabbix api java_zabbix的Java API(一)
- 作者:张鹏(1993-),男,国防科学技术大学并行与分布处理重点实验室硕士生...
- 田沄(1980-),男,博士,中国工程院—清华大学联合博士后科研工作站博士后,北京师范大学副教授....
- 坑爹的Java除法取整(记洛谷P5709题WA的经历,Java语言描述)
- 基于信息流的安全格模型
- Mac 10.12连接iSCSI硬盘软件iSCSI Initiator X
- windows环境 安装python的虚拟环境,安装第三方包的总结
- 【转】贝塞尔曲线介绍
- CIO启示:转向数字业务为传统IT带来颠覆性影响
- Eclipse/myeclipse中*.xml 配置文件添加长名字的类的简单方式