```php
<?php
/**
* Author: Virus
* Date: 2020/3/5
* Time: 17:41
*/
namespace app\common\lib;
class Arr
{
/**
* @desc 无限极分类
* @param $data
* @return array
*/
public static function getTree($data)
{
$items = [];
foreach ($data as $v) {
$items[$v['category_id']] = $v;
}
$tree = [];
foreach ($items as $id => $item) {
if (isset($items[$item['pid']])) {
$items[$item['pid']]['list'][] = &$items[$id];
} else {
$tree[] = &$items[$id];
}
}
return $tree;
}
/**
* @desc 一级分类显示5个,二级分类显示3个,三级分类显示5个
* @param $data
* @param int $firstCount
* @param int $secondCount
* @param int $thirdCount
* @return array
*/
public static function sliceTreeArr($data, $firstCount = 5, $secondCount = 3, $thirdCount = 5)
{
$data = array_slice($data, 0, $firstCount);
foreach ($data as $k => $v) {
if (!empty($v['list'])) {
$data[$k]['list'] = array_slice($v['list'], 0, $secondCount);
foreach ($v['list'] as $kk => $vv) {
if (!empty($vv['list'])) {
$data[$k]['list'][$kk]['list'] = array_slice($vv['list'], 0, $thirdCount);
}
}
}
}
return $data;
}
/**
* 分页默认返回的数据
* @param $num
* @return array
*/
public static function getPaginateDefaultData($num)
{
$result = [
"total" => 0,
"per_page" => $num,
"current_page" => 1,
"last_page" => 0,
"data" => [],
];
return $result;
}
/**
* 数组排序
* @param $result
* @param $key
* @param int $sort
* @return array|bool
*/
public static function arrsSortByKey($result, $key, $sort = SORT_DESC)
{
if (!is_array($result) || !$key) {
return [];
}
array_multisort(array_column($result, $key), $sort, $result);
return $result;
}
}
```
- PHP获取客户端浏览器信息和版本
- PHP获取客户端操作系统信息
- 无限级分类
- git使用
- 权限检测思路
- Vue学习
- 遇到的一些问题
- PHP的编码思维和技巧
- mysql复习
- tp5
- ThinkPHP5.x 公共函数
- TP5登录注册
- TP5使用模板继承
- ThinkPHP5.1 清除缓存
- thinkphp5实现安装程序
- 安全
- tp中实现跨域代码
- ThinkPHP5.1配合pjax实现菜单栏无刷新跳转
- 获取数据库版本和数据库大小
- 模型的基本CURD操作
- 商品spu
- 全局异常处理类
- ExceptionHandler
- BaseException
- PHP函数之error_reporting(E_ALL ^ E_NOTICE)详细说明
- 微信小程序
- wx:for
- tp6
- 分离的一些模块
- session开启
- Spring
- 依赖注入
- 数据结构
- 二叉树
- js获取地址栏变量
- PHP设计模式
- 面向对象
- PHP1
- PHP性能优化
- Java学习
- static关键字
- 多态
- 接口、阶乘
- 大佬给的面试题
- 访问量为5000万的博客系统设计
- PHP可变参数
- Nginx的配置案例
- 求数组中的最大值,并返回数组索引
- PHP面试方向
- PHP数组工具类ArrUtil
- 字符串工具类StrUtil
- PHP使用curl发送请求
- mysql
- PHP上传base64图片处理函数
- webstorm小程序常用配置
- 邮箱正则表达式
- leetcode mysql记录
- 函数库