@@ -34,8 +34,21 @@ function filter($data, Request $req): array {
34
34
/** Sort Order Query Params */
35
35
$ order ??= 'asc ' ; // asc or desc
36
36
37
+ // Selected Column Fetch All Data
38
+ if ($ filter ):
39
+ $ filter = explode (", " , $ filter );
40
+
41
+ foreach ($ data as $ item )
42
+ array_push ($ filterData , array_intersect_key ((array ) $ item , array_flip ($ filter )));
43
+ endif ;
44
+
37
45
// Search All Column Fetch All Data
38
46
if ($ search ):
47
+ if ($ filter )
48
+ $ data = $ filterData ;
49
+
50
+ $ filterData = [];
51
+
39
52
foreach ($ data as $ item ):
40
53
$ isSearch = false ;
41
54
@@ -57,20 +70,7 @@ function filter($data, Request $req): array {
57
70
$ filterData = empty ($ filterData ) ? $ data : $ filterData ;
58
71
59
72
usort ($ filterData , fn ($ a , $ b ) =>
60
- $ order == 'asc ' ? $ a ->$ sort > $ b ->$ sort : $ a ->$ sort < $ b ->$ sort );
61
- endif ;
62
-
63
- // Selected Column Fetch All Data
64
- if ($ filter ):
65
- $ filter = explode (", " , $ filter );
66
-
67
- if ($ search || $ sort )
68
- $ data = $ filterData ;
69
-
70
- $ filterData = [];
71
-
72
- foreach ($ data as $ item )
73
- array_push ($ filterData , array_intersect_key ((array ) $ item , array_flip ($ filter )));
73
+ $ order == 'asc ' ? ((object ) $ a )->$ sort > ((object ) $ b )->$ sort : ((object ) $ a )->$ sort < ((object ) $ b )->$ sort );
74
74
endif ;
75
75
76
76
// According Pagination Fetch All Data
0 commit comments