Files
FendxPHP/fendx-framework/fendx-common/src/Util/ArrayHelper.php
Lawson 2782d765fb feat(database): 添加用户角色权限系统及相关监控功能
- 创建用户表(users)包含基本信息和认证字段
- 创建角色表(roles)用于权限控制
- 创建权限表(permissions)定义系统权限
- 创建用户角色关联表(user_roles)建立用户与角色关系
- 创建角色权限关联表(role_permissions)建立角色与权限关系
- 创建迁移记录表(migrations)追踪数据库变更
- 添加AdminController提供管理员面板功能
- 实现系统监控、配置管理、缓存清理等功能
- 添加AOP切面编程支持的各种通知类型
- 实现告警管理AlertManager支持多渠道告警
- 添加文档注解接口规范
2026-04-08 17:00:28 +08:00

64 lines
1.6 KiB
PHP

<?php
declare(strict_types=1);
namespace Fendx\Common\Util;
class ArrayHelper
{
public static function get(array $array, string $key, mixed $default = null): mixed
{
if ($key === '') {
return $default;
}
$keys = explode('.', $key);
$value = $array;
foreach ($keys as $k) {
if (!is_array($value) || !array_key_exists($k, $value)) {
return $default;
}
$value = $value[$k];
}
return $value;
}
public static function set(array &$array, string $key, mixed $value): void
{
$keys = explode('.', $key);
$current = &$array;
foreach ($keys as $k) {
if (!is_array($current)) {
$current = [];
}
if (!array_key_exists($k, $current)) {
$current[$k] = [];
}
$current = &$current[$k];
}
$current = $value;
}
public static function merge(array ...$arrays): array
{
$result = [];
foreach ($arrays as $array) {
foreach ($array as $key => $value) {
if (is_int($key)) {
$result[] = $value;
} elseif (isset($result[$key]) && is_array($result[$key]) && is_array($value)) {
$result[$key] = self::merge($result[$key], $value);
} else {
$result[$key] = $value;
}
}
}
return $result;
}
}