3v4l.org

run code in 300+ PHP versions simultaneously
<?php final class ArrayCleaner { public static function clean(array $value): array { foreach ($value as $k => $v) { if (\is_array($v)) { $value[$k] = self::clean($v); if (0 == \count($value[$k])) { unset($value[$k]); } } elseif (empty($v)) { unset($value[$k]); } } return $value; } } $input = [ 'empty_string_to_remove' => '', 'empty_int_to_remove' => 0, 'empty_string_number_to_remove' => '0', 'value_to_keep' => 5, 'empty_array_to_remove' => [], 'empty_array_of_empty_arrays_to_remove' => [ 'one' => [], 'two' => [], 'three' => [false, null, '0'], ], 'array_to_keep_1' => [ 'value' => 1, ], 'array_to_keep_2' => [ 'empty_to_remove' => [], 'array_to_keep' => ['yes'], ], ]; print_r(ArrayCleaner::clean($input));
Output for git.master, git.master_jit, rfc.property-hooks
Array ( [value_to_keep] => 5 [array_to_keep_1] => Array ( [value] => 1 ) [array_to_keep_2] => Array ( [array_to_keep] => Array ( [0] => yes ) ) )

This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.

Active branches

Archived branches

Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page


preferences:
29.47 ms | 406 KiB | 5 Q