ArrayProvider.php 790 B

12345678910111213141516171819202122232425262728293031323334353637383940
  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. /**
  20. * Searching for key in nested array
  21. */
  22. Arr::macro('hasNestedKey', function ($key, $array) {
  23. if (array_key_exists($key, $array)) {
  24. return true;
  25. }
  26. foreach ($array as $element) {
  27. if (is_array($element)) {
  28. return Arr::hasNestedKey($key, $element);
  29. }
  30. }
  31. return false;
  32. });
  33. }
  34. }