3v4l.org

run code in 300+ PHP versions simultaneously
<?php $raw = array( 'firstname' => 'Foo', 'lastname' => 'Bar', 'nickname' => '', 'birthdate' => [ 'day' => '', 'month' => '', 'year' => '', ], 'likes' => [ 'cars' => ['Subaru Impreza WRX STi', 'Mitsubishi Evo', 'Nissan GTR'], 'bikes' => [], ], 'zero' => 0, 'deeper' => [ 'zeroString' => '0', 'null' => null ], 'false' => false, ); function recursivelyRemoveEmpties(array $array): array { foreach ($array as $key => &$value) { if (is_array($value)) { $value = recursivelyRemoveEmpties($value); if (!$value) { unset($array[$key]); } continue; } if ($value === '') { unset($array[$key]); } } return $array; } var_export(recursivelyRemoveEmpties($raw));

preferences:
72.92 ms | 404 KiB | 5 Q