thinkphp5常用函数汇总_TP5 常用的公共函数(长期更新)

本文整理了ThinkPHP5框架中常用的函数,包括数组操作、时间处理、字符串与中文处理等多个方面,提供了详细的函数说明和示例代码,帮助开发者更好地理解和使用这些功能。
摘要由CSDN通过智能技术生成

以下都是使用tp5框架,本人封装的常用方法

1、数组系列

1.1、二维数组根据pid生成多维树 (注意:父级必须排在数组前面,降维的生成树方法)

/**

* 二维数组根据pid生成多维树

* @param $list 父子级拼接数组传入

* @param $pid 父级ID字段

* @param $child 子集

* @return array

*/

function listToTree($list, $pid = 'pid', $child = 'children')

{

$tree = array();// 创建Tree

if (is_array($list)) {

// 创建基于主键的数组引用

$refer = array();

foreach ($list as $key => $data) $refer[$data['id']] = &$list[$key];

foreach ($list as $key => $data) {

// 判断是否存在parent

$parentId = $data[$pid];

if (0 == $parentId) {

$tree[] = &$list[$key];

$list[$key][$child] = [];

} else {

if (isset($refer[$parentId])) {

$parent = &$refer[$parentId];

$parent[$child][] = &$list[$key];

}

}

}

}

return $tree;

}

1.2、根据相关键值生成父子关系(二维生成树)

/**

* 根据相关键值生成父子关系

* @param array $arr1 数组1

* @param array $arr2 数组2

* @param string $arr1_key 数组1对应的键值

* @param string $arr2_key 数组2对应的父级键值

* @param string $child 合并的数组键值

*/

function listToTree2(&$arr1, $arr2, $arr1_key = 'id', $arr2_key = 'pid', $child = 'children')

{

foreach ($arr1 as $i => &$item1) {

foreach ($arr2 as $j => $item2) {

if ($item1[$arr1_key] == $item2[$arr2_key]) {

if (!isset($item1[$child]) || !is_array($item1[$child])) $item1[$child] = [];

$item1[$child][] = $item2;

}

}

}

}

1.3、二维数组根据键值排序

/**

* 二维数组根据键值排序

* @param array $array 要排序的数组

* @param string $keys 要用来排序的键名

* @param string $type 默认为降序排序

* @return array

*/

function arraySort($array, $keys, $type = 'desc')

{

//将排序的键名作为键值

$keysValue = $newArray = [];

foreach ($array as $k => $v) $keysValue[$k] = $v[$keys];

($type == 'asc' || $type == 'ASC') ? asort($keysValue) : arsort($keysValue);

reset($keysValue); //重置指针

foreach ($keysValue as $k => $v) $newArray[$k] = $array[$k];

return array_values($newArray); //重置键值

}

1.4、一维/二维数组根据关键字对数组字段进行相似度排序

/**

* 一维/二维数组根据关键字对数组字段进行相似度排序

* @param array $array 原数组

* @param string $keyword 关键字

* @param string $field 要匹配的数组字段名,不传则表示一维数组

* @param int $limit 限制次数,-1不限制

* @return array 排序好的数组

*/

function similarArrSort(array $array, string $keyword, $field = '', $limit = -1)

{

//数组key小于3,直接返回,不符合排序要求(特例,可不写)

if (count($array) <= 3 || ($limit != -1 && $limit <= 3)) {

return $array;

}

$newField = $field; //赋值

//如果传入的field为空则表示一维数组,生成field为label的二维数组

if ($field == &

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值