@@ -61,7 +61,7 @@ class ArrayHelper
61
61
*
62
62
* @return bool
63
63
*/
64
- public static function accessible ($ value ): bool
64
+ public static function accessible (mixed $ value ): bool
65
65
{
66
66
return is_array ($ value ) || $ value instanceof ArrayAccess;
67
67
}
@@ -86,7 +86,7 @@ public static function isAssoc(array $array): bool
86
86
*
87
87
* @return Traversable
88
88
*/
89
- public static function toIterator ($ array ): Traversable
89
+ public static function toIterator (mixed $ array ): Traversable
90
90
{
91
91
if (!$ array instanceof Traversable) {
92
92
$ array = new ArrayObject ((array )$ array );
@@ -98,12 +98,12 @@ public static function toIterator($array): Traversable
98
98
/**
99
99
* array data to object
100
100
*
101
- * @param array| Traversable $array
101
+ * @param Traversable|array $array
102
102
* @param string $class
103
103
*
104
104
* @return mixed
105
105
*/
106
- public static function toObject ($ array , string $ class = stdClass::class)
106
+ public static function toObject (Traversable | array $ array , string $ class = stdClass::class): mixed
107
107
{
108
108
$ object = new $ class ;
109
109
@@ -127,7 +127,7 @@ public static function toObject($array, string $class = stdClass::class)
127
127
*
128
128
* @return array|string
129
129
*/
130
- public static function valueTrim (array $ data )
130
+ public static function valueTrim (array $ data ): array | string
131
131
{
132
132
if (is_scalar ($ data )) {
133
133
return trim ($ data );
@@ -148,7 +148,7 @@ public static function valueTrim(array $data)
148
148
*
149
149
* @return bool
150
150
*/
151
- public static function keyExists ($ key , array $ arr ): bool
151
+ public static function keyExists (int | string $ key , array $ arr ): bool
152
152
{
153
153
return array_key_exists (strtolower ($ key ), array_change_key_case ($ arr ));
154
154
}
@@ -176,12 +176,12 @@ public static function valueToUpper(array $arr): array
176
176
/**
177
177
* 将数组中的值全部转为大写或小写
178
178
*
179
- * @param array|iterable $arr
179
+ * @param Traversable|array $arr
180
180
* @param bool $toUpper
181
181
*
182
182
* @return array
183
183
*/
184
- public static function changeValueCase ($ arr , bool $ toUpper = true ): array
184
+ public static function changeValueCase (Traversable | array $ arr , bool $ toUpper = true ): array
185
185
{
186
186
$ function = $ toUpper ? 'strtoupper ' : 'strtolower ' ;
187
187
$ newArr = []; //格式化后的数组
@@ -202,13 +202,13 @@ public static function changeValueCase($arr, bool $toUpper = true): array
202
202
* ******* 检查 一个或多个值是否全部存在数组中 *******
203
203
* 有一个不存在即返回 false
204
204
*
205
- * @param string| array $check
205
+ * @param array|string $check
206
206
* @param array $sampleArr 只能检查一维数组
207
207
* 注: 不分类型, 区分大小写 2 == '2' ‘a' != 'A'
208
208
*
209
209
* @return bool
210
210
*/
211
- public static function valueExistsAll ($ check , array $ sampleArr ): bool
211
+ public static function valueExistsAll (array | string $ check , array $ sampleArr ): bool
212
212
{
213
213
// 以逗号分隔的会被拆开,组成数组
214
214
if (is_string ($ check )) {
@@ -223,12 +223,12 @@ public static function valueExistsAll($check, array $sampleArr): bool
223
223
* ******* 检查 一个或多个值是否存在数组中 *******
224
224
* 有一个存在就返回 true 都不存在 return false
225
225
*
226
- * @param string| array $check
226
+ * @param array|string $check
227
227
* @param array $sampleArr 只能检查一维数组
228
228
*
229
229
* @return bool
230
230
*/
231
- public static function valueExistsOne ($ check , array $ sampleArr ): bool
231
+ public static function valueExistsOne (array | string $ check , array $ sampleArr ): bool
232
232
{
233
233
// 以逗号分隔的会被拆开,组成数组
234
234
if (is_string ($ check )) {
@@ -243,13 +243,13 @@ public static function valueExistsOne($check, array $sampleArr): bool
243
243
* ******* 不区分大小写,检查 一个或多个值是否 全存在数组中 *******
244
244
* 有一个不存在即返回 false
245
245
*
246
- * @param string| array $need
247
- * @param array|iterable $arr 只能检查一维数组
246
+ * @param array|string $need
247
+ * @param Traversable|array $arr 只能检查一维数组
248
248
* @param bool $type 是否同时验证类型
249
249
*
250
250
* @return bool | string 不存在的会返回 检查到的 字段,判断时 请使用 ArrHelper::existsAll($need,$arr)===true 来验证是否全存在
251
251
*/
252
- public static function existsAll ($ need , $ arr , bool $ type = false )
252
+ public static function existsAll (array | string $ need , Traversable | array $ arr , bool $ type = false ): bool | string
253
253
{
254
254
if (is_array ($ need )) {
255
255
foreach ((array )$ need as $ v ) {
@@ -274,13 +274,13 @@ public static function existsAll($need, $arr, bool $type = false)
274
274
* ******* 不区分大小写,检查 一个或多个值是否存在数组中 *******
275
275
* 有一个存在就返回 true 都不存在 return false
276
276
*
277
- * @param string| array $need
278
- * @param array|iterable $arr 只能检查一维数组
277
+ * @param array|string $need
278
+ * @param Traversable|array $arr 只能检查一维数组
279
279
* @param bool $type 是否同时验证类型
280
280
*
281
281
* @return bool
282
282
*/
283
- public static function existsOne ($ need , $ arr , bool $ type = false ): bool
283
+ public static function existsOne (array | string $ need , Traversable | array $ arr , bool $ type = false ): bool
284
284
{
285
285
if (is_array ($ need )) {
286
286
foreach ((array )$ need as $ v ) {
@@ -456,7 +456,7 @@ public static function dot(array $array, string $prepend = ''): array
456
456
*
457
457
* @return array
458
458
*/
459
- public static function except (array $ array , $ keys ): array
459
+ public static function except (array $ array , array | string $ keys ): array
460
460
{
461
461
static ::forget ($ array , $ keys );
462
462
@@ -467,11 +467,11 @@ public static function except(array $array, $keys): array
467
467
* Determine if the given key exists in the provided array.
468
468
*
469
469
* @param ArrayAccess|array $array
470
- * @param string| int $key
470
+ * @param int|string $key
471
471
*
472
472
* @return bool
473
473
*/
474
- public static function exists (array $ array , $ key ): bool
474
+ public static function exists (array $ array , int | string $ key ): bool
475
475
{
476
476
if ($ array instanceof ArrayAccess) {
477
477
return $ array ->offsetExists ($ key );
@@ -515,7 +515,7 @@ public static function flatten(array $array, int $depth = INF): array
515
515
*
516
516
* @return void
517
517
*/
518
- public static function forget (array &$ array , $ keys ): void
518
+ public static function forget (array &$ array , array | string $ keys ): void
519
519
{
520
520
$ original = &$ array ;
521
521
$ keys = (array )$ keys ;
@@ -554,12 +554,12 @@ public static function forget(array &$array, $keys): void
554
554
/**
555
555
* Check if an item or items exist in an array using "dot" notation.
556
556
*
557
- * @param ArrayAccess |array $array
558
- * @param string| array $keys
557
+ * @param Traversable |array $array
558
+ * @param array|string $keys
559
559
*
560
560
* @return bool
561
561
*/
562
- public static function has ($ array , $ keys ): bool
562
+ public static function has (Traversable | array $ array , array | string $ keys ): bool
563
563
{
564
564
if (null === $ keys ) {
565
565
return false ;
@@ -577,7 +577,6 @@ public static function has($array, $keys): bool
577
577
578
578
foreach ($ keys as $ key ) {
579
579
$ subKeyArray = $ array ;
580
-
581
580
if (static ::exists ($ array , $ key )) {
582
581
continue ;
583
582
}
@@ -599,11 +598,11 @@ public static function has($array, $keys): bool
599
598
*
600
599
* @param array $array
601
600
* @param mixed $value
602
- * @param mixed $key
601
+ * @param mixed|null $key
603
602
*
604
603
* @return array
605
604
*/
606
- public static function prepend (array $ array , $ value , $ key = null ): array
605
+ public static function prepend (array $ array , mixed $ value , mixed $ key = null ): array
607
606
{
608
607
if (null === $ key ) {
609
608
array_unshift ($ array , $ value );
@@ -617,13 +616,13 @@ public static function prepend(array $array, $value, $key = null): array
617
616
/**
618
617
* remove the $key of the $arr, and return value.
619
618
*
620
- * @param string| int $key
619
+ * @param int|string $key
621
620
* @param array $arr
622
- * @param mixed $default
621
+ * @param mixed|null $default
623
622
*
624
623
* @return mixed
625
624
*/
626
- public static function remove (array &$ arr , $ key , $ default = null )
625
+ public static function remove (array &$ arr , int | string $ key , mixed $ default = null ): mixed
627
626
{
628
627
if (isset ($ arr [$ key ])) {
629
628
$ value = $ arr [$ key ];
@@ -638,13 +637,13 @@ public static function remove(array &$arr, $key, $default = null)
638
637
/**
639
638
* Get a value from the array, and remove it.
640
639
*
641
- * @param array| ArrayAccess $array
642
- * @param string| int $key
643
- * @param mixed $default
640
+ * @param ArrayAccess|array $array
641
+ * @param int|string $key
642
+ * @param mixed|null $default
644
643
*
645
644
* @return mixed
646
645
*/
647
- public static function pull (& $ array , $ key , $ default = null )
646
+ public static function pull (ArrayAccess | array $ array , int | string $ key , mixed $ default = null ): mixed
648
647
{
649
648
$ value = static ::get ($ array , $ key , $ default );
650
649
@@ -661,7 +660,7 @@ public static function pull(&$array, $key, $default = null)
661
660
*
662
661
* @return array
663
662
*/
664
- public static function only (array $ array , $ keys ): array
663
+ public static function only (array $ array , array | string $ keys ): array
665
664
{
666
665
return array_intersect_key ($ array , array_flip ((array )$ keys ));
667
666
}
@@ -700,7 +699,7 @@ public static function where(array $array, callable $callback): array
700
699
*
701
700
* @return array
702
701
*/
703
- public static function wrap ($ value ): array
702
+ public static function wrap (mixed $ value ): array
704
703
{
705
704
return !is_array ($ value ) ? (array )$ value : $ value ;
706
705
}
@@ -712,7 +711,7 @@ public static function wrap($value): array
712
711
/**
713
712
* array 递归 转换成 字符串
714
713
*
715
- * @param array $array
714
+ * @param array $array
716
715
* @param int $length
717
716
* @param int $cycles 至多循环六次 $num >= 6
718
717
* @param bool $showKey
@@ -723,7 +722,7 @@ public static function wrap($value): array
723
722
* @return string
724
723
*/
725
724
public static function toString (
726
- $ array ,
725
+ array $ array ,
727
726
int $ length = 800 ,
728
727
int $ cycles = 6 ,
729
728
bool $ showKey = true ,
@@ -741,7 +740,7 @@ public static function toString(
741
740
foreach ($ array as $ key => $ value ) {
742
741
$ num ++;
743
742
744
- if ($ num >= $ cycles || strlen ($ string ) > ( int ) $ length ) {
743
+ if ($ num >= $ cycles || strlen ($ string ) > $ length ) {
745
744
$ string .= '... ... ' ;
746
745
break ;
747
746
}
0 commit comments