ArrayProvider.php 795 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. <?php
  2. namespace App\Providers\Macros;
  3. use Illuminate\Support\Arr;
  4. use Illuminate\Support\ServiceProvider;
  5. class ArrayProvider extends ServiceProvider
  6. {
  7. /**
  8. * Register services.
  9. */
  10. public function register(): void
  11. {
  12. //
  13. }
  14. /**
  15. * Bootstrap services.
  16. */
  17. public function boot(): void
  18. {
  19. // Some array macros
  20. // Searching for key in nested array
  21. Arr::macro('hasNestedKey', function ($key, $array) {
  22. if (array_key_exists($key, $array)) {
  23. return true;
  24. }
  25. foreach ($array as $element) {
  26. if (is_array($element)) {
  27. return Arr::hasNestedKey($key, $element);
  28. }
  29. }
  30. return false;
  31. });
  32. }
  33. }