PHPackages                             hotarunohikari/dr-tool - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. hotarunohikari/dr-tool

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

hotarunohikari/dr-tool
======================

a php tool

1.0(5y ago)010MITPHPPHP &gt;=7.0.0

Since Dec 22Pushed 5y ago1 watchersCompare

[ Source](https://github.com/hotarunohikari/tool)[ Packagist](https://packagist.org/packages/hotarunohikari/dr-tool)[ RSS](/packages/hotarunohikari-dr-tool/feed)WikiDiscussions master Synced today

READMEChangelog (1)DependenciesVersions (2)Used By (0)

a php tool
==========

[](#a-php-tool)

Arr
---

[](#arr)

```
/**
 * Notes: 是否为关联数组
 * @param $array
 * @return bool
 */
public static function isMap($array)

/**
 * Notes: 查询数组中所有的键,递归
 * @param $array
 * @return mixed
 */
public static function keys($array)

/**
 * Notes: 查询数组中所有的值,递归
 * @param $array
 * @param array $result
 * @return array
 */
public static function values($array, $result = [])

/**
 * Notes: 查找数组中是否含有指定的键
 * @param $array
 * @param $key
 * @param bool $recursive 递归查找,默认否
 * @return bool
 */
public static function hasKey($array, $key, $recursive = false)

/**
 * Notes: 查找数组中是否含有指定的值
 * @param $array
 * @param $value
 * @param bool $recursive 递归查找,默认否
 * @return bool
 */
public static function hasValue($array, $value, $recursive = false)

/**
 * Notes: 只保留数组中指定键集合的键值对(非递归)
 * @param $array
 * @param $keys_array
 * @return array
 */
public static function onlyKeys($array, $keys_array)

/**
 * Notes: 只保留数组中指定值集合的键值对(非递归)
 * @param $array
 * @param $values_array
 * @return array
 */
public static function onlyValues($array, $values_array)

/**
 * Notes: 只保留数组中与指定键值集合相同的键值对(非递归)
 * @param $array
 * @param $rule_array
 * @return array
 */
public static function onlySame($array, $rule_array)

/**
 * Notes: 移除数组中指定键集合的键值对(非递归)
 * @param $array
 * @param $keys_array
 * @return array
 */
public static function exceptKeys($array, $keys_array)

/**
 * Notes: 移除数组中指定值集合的键值对(非递归)
 * @param $array
 * @param $values_array
 * @return array
 */
public static function exceptValues($array, $values_array)

/**
 * Notes: 移除数组中与指定键值集合相同的键值对(非递归)
 * @param $array
 * @param $rule_array
 * @return array
 */
public static function exceptSame($array, $rule_array)

/**
 * Notes: 向数组前端追加元素,支持['k'=>'v']和'v','k'两种方式
 * @param $array
 * @param $value
 * @param null $key
 * @return array
 */
public static function unshift($array, $value, $key = null)

/**
 * Notes: 向数组末端追加元素,支持['k'=>'v']和'v','k'两种方式
 * @param $array
 * @param $value
 * @param null $key
 * @return array
 */
public static function shift($array, $value, $key = null)

/**
 * Notes: 拆分数组的键和值
 * @param $array
 * @return array
 */
public static function divide($array)

/**
 * Notes: 数组转为querystring
 * @param $array
 * @return string
 */
public static function toQueryString($array)

/**
 * Notes: 数组转为json串
 * @param $array
 * @return string
 */
public static function toJson($array)

/**
 * Notes: 数组转字符串
 * @param $array
 * @param string $glue 分隔符
 * @return string
 */
public static function toString($array, $glue = ',')

/**
 * Notes: 数组转对象,便于使用->方式进行访问
 * @param $array
 * @return object
 */
public static function toObject($array)

/**
 * Notes: 多维数组合并为一维数组,同样的值合并为数组
 * @param array $array
 * @return mixed
 */
public static function to1($array = [])

/**
 * Notes: 重排数组,以指定的key作为索引,用于整理查询结果集
 * @param $array
 * @param $key
 * @return array
 */
public static function toTable($array, $key)

/**
 * Notes: 整理数组为树形结构,用于整理查询结果集
 * @param $items
 * @param string $id
 * @param string $pid
 * @param string $son
 * @return array
 */
public static function toTree($items, $id = 'id', $pid = 'pid', $son = 'son')

```

File
----

[](#file)

```
/**
 * Notes: 递归创建目录或文件,以扩展名作为区分
 * @param $dst
 * @return bool
 */
static function make($dst)

/**
 * Notes: 递归复制目录或文件
 * @param $src
 * @param $dst
 */
static function copy($src, $dst)

/**
 * Notes: 递归删除目录或文件
 * @param $path
 * @param array $except 例外
 * @param bool $self 是否删除自身,默认否
 * @return bool
 */
static function delete($path, $except = [], $self = false)

```

Time
----

[](#time)

```
/**
 * 时区操作
 * @param string $area 时区名
 * @return string
 */
static function timezone($area = null)

/**
 * 统计指定月份年份的当月天数
 * @param int|string $month
 * @param int|string $year
 * @return int
 */
static function countDaysInMonth($month, $year)

/**
 * 检查指定日期是否合法
 * @param int|string $year
 * @param int|string $month
 * @param int|string $day
 * @return bool
 */
static function isLegalDate($year, $month, $day)

/**
 * 检查指定时间是否为合法时间
 * @param int|string $year
 * @param int|string $month
 * @param int|string $day
 * @param int|string $hour
 * @param int|string $minute
 * @param int|string $second
 * @return bool
 */
static function isLegalDateTime($year, $month, $day, $hour = "00", $minute = "00", $second = "00")

/**
 * 检查形如 "Y-m-d H:i:s" 的字符串是否为合法时间
 * @param string $timestr
 * @return bool
 */
static function isLegaldateTimeStr($timestr)

/**
 * 给定日期字符串转换为统一格式
 * @param string $raw 字符串,形如 2018-11-13 、2018、2017/04/05、2015.5 等不规范的格式
 * @param string $delimiter 分隔符,当前函数能够识别 横线- 点.和斜杠/ 三种格式
 * @return string 一个格式统一化的字符串, 用横线-分隔开
 */
static function fixDate($raw, $delimiter = null)

/**
 * 给定时间字符串转换为统一格式
 * @param string $raw 字符串,形如 19 、19.5、8/2/3、15-5 等不规范的格式
 * @param string $delimiter 分隔符,当前函数能够识别 横线- 点. 斜杠/ 和冒号 四种格式
 * @return string 一个格式统一化的字符串, 用横线-分隔开
 */
static function fixTime($raw, $delimiter = null)

/**
 * 给定日期时间字符串转换为统一格式
 * @param string $raw 字符串,形如 19 、19.5、8/2/3、15-5 等不规范的格式
 * @return string 格式统一化的字符串, 格式为 Y-m-d H:i:s 或 H:i:s
 */
static function fixDateTime($raw)

/**
 * 转化为时间戳
 * @param int|string $raw 时间戳/时间串, 字符串形如 2018-11-13 8:05:06 或 8:05:06
 * @return int 返回时间戳,如果输入的是时分秒,则返回当天时分秒的时间戳,格式错误返回0
 */
static function toTimestamp($raw = null)

/**
 * 转化为时间字符串
 * @param int|string $raw 时间戳/时间串, 字符串形如 2018-11-13 8:05:06 或 8:05:06
 * @param string $format 字符串格式
 * @return int 返回时间戳,如果输入的是时分秒,则返回当天时分秒的时间戳,格式错误返回原内容
 */
static function toDateTimeStr($raw = null, $format = self::SF)

/**
 * 指定时间点是否早于指定日期
 * @param string|int $date_point 作为标准的时间点,支持字符串和时间戳
 * @param string|int|null $date_time 用于比较的时间点，默认当前时间
 * @return bool
 */
static function isBefore($date_point, $date_time = null)

/**
 * 指定时间点是否晚于指定日期
 * @param string|int $date_point 作为标准的时间点,支持字符串和时间戳
 * @param string|int|null $date_time 用于比较的时间点，默认当前时间
 * @return bool
 */
static function isAfter($date_point, $date_time = null)

/**
 * 指定时间戳是否在给定日期区域内
 * @param string $start 起始日期 "2019-10-11"
 * @param string $end 结束日期 "2019-12-31"
 * @param int|string|null $date_time 时间戳/时间串,默认当前时间
 * @return bool
 */
static function isBetween($start, $end, $date_time = null)

/**
 * 指定时间是否同一天
 * @param int|string $date_time1 时间戳/时间串
 * @param int|string $date_time2 时间戳/时间串
 * @return bool
 */
static function isSameDay($date_time1, $date_time2)

/**
 * 指定时间戳是否在给定时间区域内
 * @param string $start 起始时间,形如 "09:00" 或 "09:00:00"
 * @param string $end 结束时间，形如 "17:00" 或 "17:00:00"
 * @param int|string $date_time 时间戳/时间串,默认当前时间
 * @return bool
 */
static function inRange($start, $end, $date_time = null)

/**
 * 指定时间戳是否早于指定时间
 * @param string|int $time_point 形如 "09:00" 或 给定一个时间戳
 * @param string|int $date_time 时间戳/时间串,默认当前时间
 * @return bool
 */
static function isEarly($time_point, $date_time = null)

/**
 * 指定时间戳是否晚于指定时间
 * @param string|int $time_point 形如 "09:00" 或 给定一个时间戳
 * @param string|int $date_time 时间戳/时间串,默认当前时间
 * @return bool
 */
static function isLate($time_point, $date_time = null)

/**
 * 判断指定日期是某周的第几天,0为周日,1为周一,最大为6
 * @param null $date_time
 * @return false|string
 */
static function whichDayOfWeek($date_time = null)

/**
 * 判断指定日期是某月的第几天
 * @param null $date_time
 * @return false|string
 */
static function whichDayOfMonth($date_time = null)

/**
 * 判断指定日期是某年的第几天
 * @param null $date_time
 * @return false|string
 */
static function whichDayOfYear($date_time = null)

/**
 * 判断两个指定时间点的间隔
 * @param int|string $time_point 日期1
 * @param null $date_time 日期2 默认当前时间
 * @param int $unit 单位,默认为秒
 * @return string|null
 */
static function step($time_point, $date_time = null, $unit = self::SECOND)

/**
 * 判断指定年份是否为闰年
 * @param int|string $year 指定年份
 * @return bool
 */
static function isLeapYear($year)

```

Str
---

[](#str)

```
/**
 * 检查字符串中是否包含某些字符串
 * @param string $haystack
 * @param string|array $needles
 * @return bool
 */
public static function contains(string $haystack, $needles)

/**
 * 检查字符串是否以某些字符串结尾
 *
 * @param string $haystack
 * @param string|array $needles
 * @return bool
 */
public static function endsWith(string $haystack, $needles)

/**
 * 检查字符串是否以某些字符串开头
 *
 * @param string $haystack
 * @param string|array $needles
 * @return bool
 */
public static function startsWith(string $haystack, $needles)

/**
 * 获取指定长度的随机字母数字组合的字符串
 *
 * @param int $length
 * @param int $type
 * @param string $addChars
 * @return string
 */
public static function random(int $length = 6, int $type = null, string $addChars = '')

/**
 * 字符串转小写
 *
 * @param $string
 * @return string
 */
public static function lower($string)

/**
 * 字符串转大写
 *
 * @param $string
 * @return string
 */
public static function upper($string)

/**
 * 获取字符串的长度
 *
 * @param $string
 * @return int
 */
public static function length($string)

/**
 * 截取字符串
 *
 * @param string $string
 * @param int $start
 * @param int|null $length
 * @return string
 */
public static function substr(string $string, int $start, int $length = null)

/**
 * 驼峰转下划线
 *
 * @param $string
 * @param string $delimiter
 * @return string
 */
public static function snake($string, string $delimiter = '_')

/**
 * 下划线转驼峰(首字母小写)
 *
 * @param $string
 * @return string
 */
public static function camel($string)

/**
 * 下划线转驼峰(首字母大写)
 *
 * @param $string
 * @return string
 */
public static function studly($string)

/**
 * 字符串转数组,优先尝试json转字符串,其次尝试使用分隔符转数组
 * @param $string
 * @param string $glue
 * @return mixed
 */
public static function toArr($string,$glue = ',')

/**
 * 生成uuid
 * @param string $prefix
 * @return string
 */
static function uuid($prefix = '')

/**
 * 去除所有的空格
 * @param $string
 * @return string|string[]
 */
static function nospace($string)

```

###  Health Score

22

—

LowBetter than 22% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity5

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity48

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 60% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

1966d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/47f6cfe87caf5c95a781c6518d6d9dcb49e5e1999792ea7d66799f4f81410517?d=identicon)[hotarunohikari](/maintainers/hotarunohikari)

---

Top Contributors

[![CorderWei](https://avatars.githubusercontent.com/u/7877655?v=4)](https://github.com/CorderWei "CorderWei (6 commits)")[![hotarunohikari](https://avatars.githubusercontent.com/u/59673213?v=4)](https://github.com/hotarunohikari "hotarunohikari (4 commits)")

### Embed Badge

![Health badge](/badges/hotarunohikari-dr-tool/health.svg)

```
[![Health](https://phpackages.com/badges/hotarunohikari-dr-tool/health.svg)](https://phpackages.com/packages/hotarunohikari-dr-tool)
```

###  Alternatives

[vcian/pulse-active-sessions

A Laravel Pulse card to show active user session.

11469.2k](/packages/vcian-pulse-active-sessions)[norberttech/aceeditor-bundle

Bundle that integrate excellent JavaScript ace editor into Symfony Form.

28310.8k](/packages/norberttech-aceeditor-bundle)[tomloprod/radiance

A deterministic mesh gradient avatar generator for PHP.

1393.7k](/packages/tomloprod-radiance)[chefkoch/morphoji

A library to convert UTF-8 emoji characters to latin1 placeholders and vice versa.

14136.9k1](/packages/chefkoch-morphoji)[epessine/axis

Draw charts with a simple API on Laravel

265.6k](/packages/epessine-axis)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
