php封装一个常用的助手函数文件
/**
* @desc 二维数组多个字段分装
*/
if (!function_exists('array_group_by_multiple')) {
// 自定义函数进行分组
function array_group_by_multiple($array, $keys)
{
$result = [];
foreach ($array as $item) {
// 从第一个键开始
$current_level = &$result;
foreach ($keys as $key) {
// 如果当前键不存在,则创建一个空数组
if (!isset($current_level[$item[$key]])) {
$current_level[$item[$key]] = [];
}
// 移动到下一个嵌套级别
$current_level = &$current_level[$item[$key]];
}
// 到达最后一个键,将原始项添加到数组中
$current_level[] = $item;
}
return $result;
}
}
/**
* @desc 获取多级分类
*/
if (!function_exists('getTree')) {
function getTree($data, $p_id = 0, $level = 0)
{
$tree = array();
foreach ($data as $k => $v) {
$v['level'] = $level;
if ($v["p_id"] == $p_id) {
unset($data[$k]);
if (!empty($data)) {
$children = getTree($data, $v["id"], $level + 1);
if (!empty($children)) {
$v["children"] = $children;
} else {
$v['children'] = array();
}
} else {
$v['children'] = array();
}
$tree[] = $v;
}
}
return $tree;
}
}
/**
* @desc 二维数组排序
*/
if (!function_exists('multiArraySort')) {
function multiArraySort($array, $field, $ascending = true)
{
$fieldValues = array_column($array, $field);
$sortFlags = $ascending ? SORT_ASC : SORT_DESC;
array_multisort($fieldValues, $sortFlags, $array);
return $array;
}
}
/**
* @desc xml转json
*/
if (!function_exists('xmlToJsonArr')) {
function xmlToJsonArr($data)
{
if (substr($data, 0, 5) != "<?xml") return;
$xml = simplexml_load_string($data); //xml转object
$xml = json_encode($xml); //objecct转json
return json_decode($xml, true);
}
}
/**
* @desc 集合转为数组
*/
if (!function_exists('convertToArrays')) {
function convertToArrays($data)
{
// 如果数据是集合,递归转换为数组
if ($data instanceof \Illuminate\Support\Collection) {
return $data->map(function ($item) {
return convertToArrays($item);
})->toArray();
}
// 如果数据是模型实例,转换为数组
if ($data instanceof \Illuminate\Database\Eloquent\Model) {
return $data->toArray();
}
// 如果数据是标量值,直接返回
if (is_scalar($data)) {
return $data;
}
// 如果数据是其他类型,尝试转换为数组
return (array)$data;
}
}
/**
* @desc 数组转json
*/
if (!function_exists('enJson')) {
function enJson($params)
{
return json_encode($params, 320);
}
}
/**
* @desc json转数组
*/
if (!function_exists('deJson')) {
function deJson($params)
{
return json_decode($params, true);
}
}
本文来自博客园,作者:Carvers,转载请注明原文链接:https://www.cnblogs.com/carver/articles/18829066

浙公网安备 33010602011771号