Newer
Older
<?php
namespace IQDEV\ElasticSearch\Helper;
class ArrayHelper
{
/**
* Recursively filter an array
*
* @param array $array
* @param callable|null $callback
*
* @return array
*/
public static function array_filter_recursive(array $array, ?callable $callback = null): array
{
$array = is_callable($callback) ? array_filter($array, $callback) : array_filter($array);
foreach ($array as $key => &$value) {
if (is_array($value)) {
$value = call_user_func([__CLASS__, __FUNCTION__], $value, $callback);
if (!empty($value)) {
$value = self::array_filter_recursive($value, $callback);
} else {
unset($array[$key]);