12
12
use ArrayAccess ;
13
13
use ArrayObject ;
14
14
use stdClass ;
15
- use Toolkit \Collection \ CollectionInterface ;
15
+ use Toolkit \Stdlib \ Php ;
16
16
use Traversable ;
17
17
use function array_change_key_case ;
18
18
use function array_diff ;
39
39
use function is_scalar ;
40
40
use function is_string ;
41
41
use function mb_strlen ;
42
+ use function method_exists ;
42
43
use function strlen ;
43
44
use function strpos ;
44
45
use function strtolower ;
@@ -250,7 +251,7 @@ public static function valueTrim(array $data)
250
251
return trim ($ data );
251
252
}
252
253
253
- array_walk_recursive ($ data , function (&$ value ): void {
254
+ array_walk_recursive ($ data , static function (&$ value ): void {
254
255
$ value = trim ($ value );
255
256
});
256
257
@@ -330,7 +331,7 @@ public static function valueExistsAll($check, array $sampleArr): bool
330
331
// 以逗号分隔的会被拆开,组成数组
331
332
if (is_string ($ check )) {
332
333
$ check = trim ($ check , ', ' );
333
- $ check = strpos ($ check , ', ' ) !== false ? explode (', ' , $ check ) : [$ check ];
334
+ $ check = strpos ($ check , ', ' ) !== false ? ( array ) explode (', ' , $ check ) : [$ check ];
334
335
}
335
336
336
337
return !array_diff ((array )$ check , $ sampleArr );
@@ -350,7 +351,7 @@ public static function valueExistsOne($check, array $sampleArr): bool
350
351
// 以逗号分隔的会被拆开,组成数组
351
352
if (is_string ($ check )) {
352
353
$ check = trim ($ check , ', ' );
353
- $ check = strpos ($ check , ', ' ) !== false ? explode (', ' , $ check ) : [$ check ];
354
+ $ check = strpos ($ check , ', ' ) !== false ? ( array ) explode (', ' , $ check ) : [$ check ];
354
355
}
355
356
356
357
return (bool )array_intersect ((array )$ check , $ sampleArr );
@@ -569,8 +570,8 @@ public static function collapse(array $array): array
569
570
$ results = [];
570
571
571
572
foreach ($ array as $ values ) {
572
- if ($ values instanceof CollectionInterface ) {
573
- $ values = $ values ->all ();
573
+ if (is_object ( $ values) && method_exists ( $ values , ' toArray ' ) ) {
574
+ $ values = $ values ->toArray ();
574
575
} elseif (!is_array ($ values )) {
575
576
continue ;
576
577
}
@@ -591,9 +592,9 @@ public static function collapse(array $array): array
591
592
*/
592
593
public static function crossJoin (...$ arrays ): array
593
594
{
594
- return array_reduce ($ arrays , function ($ results , $ array ) {
595
- return static ::collapse (array_map (function ($ parent ) use ($ array ) {
596
- return array_map (function ($ item ) use ($ parent ) {
595
+ return array_reduce ($ arrays , static function ($ results , $ array ) {
596
+ return static ::collapse (array_map (static function ($ parent ) use ($ array ) {
597
+ return array_map (static function ($ item ) use ($ parent ) {
597
598
return array_merge ($ parent , [$ item ]);
598
599
}, $ array );
599
600
}, $ results ));
@@ -698,7 +699,7 @@ public static function add(array $array, $key, $value): array
698
699
public static function get ($ array , $ key , $ default = null )
699
700
{
700
701
if (!static ::accessible ($ array )) {
701
- return value ($ default );
702
+ return Php:: value ($ default );
702
703
}
703
704
704
705
if (null === $ key ) {
@@ -713,7 +714,7 @@ public static function get($array, $key, $default = null)
713
714
if (static ::accessible ($ array ) && static ::exists ($ array , $ segment )) {
714
715
$ array = $ array [$ segment ];
715
716
} else {
716
- return value ($ default );
717
+ return Php:: value ($ default );
717
718
}
718
719
}
719
720
@@ -763,10 +764,12 @@ public static function set(array &$array, $key, $value): array
763
764
*
764
765
* @return array
765
766
*/
766
- public static function flatten ($ array , $ depth = INF ): array
767
+ public static function flatten ($ array , int $ depth = INF ): array
767
768
{
768
- return array_reduce ($ array , function ($ result , $ item ) use ($ depth ) {
769
- $ item = $ item instanceof CollectionInterface ? $ item ->all () : $ item ;
769
+ return array_reduce ($ array , static function ($ result , $ item ) use ($ depth ) {
770
+ if (is_object ($ item ) && method_exists ($ item , 'toArray ' )) {
771
+ $ item = $ item ->toArray ();
772
+ }
770
773
771
774
if (!is_array ($ item )) {
772
775
return array_merge ($ result , [$ item ]);
@@ -1078,6 +1081,11 @@ public static function toFormatString($array, $length = 400)
1078
1081
return $ string ;
1079
1082
}
1080
1083
1084
+ /**
1085
+ * @param $array
1086
+ *
1087
+ * @return array
1088
+ */
1081
1089
public static function toLimitOut ($ array ): array
1082
1090
{
1083
1091
if (!is_array ($ array )) {
0 commit comments