将一个线性数组转换为一个树,或者多维数组

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,整理几个方法相关推荐

  1. mysql 截取逗号并形成新的字段_MySQL将一个字段中以逗号分隔的取出来形成新的字段实现...

    1例如:要把如图1的字段拆分图2 select account_id, substring_index(substring_index(a.related_shop_ids,"," ...

  2. 将一个正方形分成4个大小一样的小正方形,再将其中一个小正方形分成4个小正方形,如此类推,分割n次是几个正方形?

    问题: 将一个正方形分成4个大小一样的小正方形,再将其中一个小正方形分成4个小正方形,如此类推,分割n次是几个正方形? 解答:        一次分割都是将一个分成4个,增加了3(1*3)个:     ...

  3. linux 循环显示所有的sh.*文件.,利用shell脚本遍历文件夹内所有的文件并作整理统计的方法...

    环境: Ubuntu下采用shell脚本实现 案例简述:文件夹内有许多子文件夹,这里需要自动读取所有的文件,包括他们的地址和文件名.通过观察文件名的规律,按照一定的规则裁剪出文件名的某一部分,该部分为 ...

  4. mysql添加字段uniquekey索引_MySQL数据库之mysql为字段添加和删除唯一性索引(unique) 的方法...

    本文主要向大家介绍了MySQL数据库之mysql为字段添加和删除唯一性索引(unique) 的方法 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 1.添加PRIMARY KEY ...

  5. linux遍历目录删除指定文件,利用shell脚本遍历文件夹内所有的文件并作整理统计的方法-linux删除文件夹...

    本篇文章扣丁学堂Linux培训小编给读者们分享一下利用shell脚本遍历文件夹内所有的文件并作整理统计的方法,文章具有很好的参考价值,感兴趣的小伙伴就随小编来了解一下吧. 环境: Ubuntu下采用s ...

  6. php mssql_result 255 string,PHP连接MSSQL时nvarchar字段长度被截断为255的解决方法

    本文实例讲述了PHP连接MSSQL时nvarchar字段长度被截断为255的解决方法.分享给大家供大家参考.具体分析如下: PHP 连接 MSSQL 的新手经常遇到这个问题:数据库里面的 nvarch ...

  7. Eslint报错整理与解决方法(持续整理)

    Eslint报错整理与解决方法(持续整理) 参考文章: (1)Eslint报错整理与解决方法(持续整理) (2)https://www.cnblogs.com/lunlunshiwo/p/859600 ...

  8. BOS12——多对多添加方法,多对多页面需要字段问题(不多的话直接提供get方法),修改Realm中授权方法(查询数据库),缓存Java对象的方法,加载左侧菜单(ztree提供pId)...

    1.多对多添加方法 @Override public void add(Role model, String functionIds) {// 1.先将角色保存到数据库roleDao.save(mod ...

  9. 关于elasticsearch boostrap checks failed错误类型整理及解决方法

    关于elasticsearch boostrap checks failed错误类型整理及解决方法 参考文章: (1)关于elasticsearch boostrap checks failed错误类 ...

最新文章

  1. sudo提权实战讲解 对用户对组的权限配置分析
  2. 独家 | 成功开发者必备的5项软技能
  3. python恶搞代码-搞笑的程序猿:看看你是哪种Python程序员
  4. python的一些 简单算法
  5. python-生成器函数进阶和各种推导式day15
  6. word中链接到目标后返回快捷键
  7. vue e-charts按需引入
  8. linux LyX中文编辑环境安装配置指南-TeX可视化工具
  9. 2019 第八/九周/十周 开发笔记
  10. 来自读者的面试题:谈谈Spring用到了哪些设计模式?
  11. js页面传值php页面,php实现跳转传值有什么方法,js页面跳转传值
  12. 【C++笔记】变量和基本类型
  13. Params属性的用法 (beginner)
  14. Microsoft Access 2002中文版标准培训教程pdf
  15. python mock server_Mock Server 入门
  16. 金融小白进阶记——金融加速器
  17. Flink Transformation
  18. Win10开机取消微软登录密码
  19. C++飞机票订票系统
  20. venn.diagram生成pdf图片

热门文章

  1. zabbix api java_zabbix的Java API(一)
  2. 作者:张鹏(1993-),男,国防科学技术大学并行与分布处理重点实验室硕士生...
  3. 田沄(1980-),男,博士,中国工程院—清华大学联合博士后科研工作站博士后,北京师范大学副教授....
  4. 坑爹的Java除法取整(记洛谷P5709题WA的经历,Java语言描述)
  5. 基于信息流的安全格模型
  6. Mac 10.12连接iSCSI硬盘软件iSCSI Initiator X
  7. windows环境 安装python的虚拟环境,安装第三方包的总结
  8. 【转】贝塞尔曲线介绍
  9. CIO启示:转向数字业务为传统IT带来颠覆性影响
  10. Eclipse/myeclipse中*.xml 配置文件添加长名字的类的简单方式