Utils.php 1.72 KiB
<?php
class Utils
  private function __construct ()
  /**
   * @param array $array
   * @return array
   * Note : Recursively filters out empty values and arrays at any depth.
  public static function recursiveArrayFilter (array $array): array
    return array_filter($array, function ($item) {
        if (is_array($item)) {
            $item = self::recursiveArrayFilter($item);
        return !empty($item);
    });
  /**
   * Find matching keys between 2 lists.
   * @param array|null $elements
   * @param array $keys
   * @return array
  public static function findMatchingKeys (?array $elements, array $keys): array
    $matching = [];
    foreach ($elements as $element) {
      foreach ($keys as $key) {
        if (!empty($element) && array_key_exists($key, $element)) {
          $matching[] = $key;
    return $matching;
  /**
   * @param $array
   * @return array
   * Note : simply return all values of a multi-dimensional array.
  public static function getArrayValuesRecursive ($array)
    $values = [];
    foreach ($array as $value) {
      if (is_array($value)) {
        // If value is an array, merge its values recursively
        $values = array_merge($values, self::getArrayValuesRecursive($value));
      } else {
        // If value is not an array, add it to the result
        $values[] = $value;
    return $values;
  /**
   * @param string $text
   * @return string
   * Note : This come from jwtToken, as it is completely private - it is cloned here for now.
7172737475
public static function base64urlEncode (string $text): string { return str_replace(["+", "/", "="], ["A", "B", ""], base64_encode($text)); } }