3v4l.org

run code in 300+ PHP versions simultaneously
<?php $raw = array( 'firstname' => 'Foo', 'lastname' => 'Bar', 'nickname' => '', 'birthdate' => array( 'day' => '', 'month' => '', 'year' => '', ), 'likes' => array( 'cars' => array('Subaru Impreza WRX STi', 'Mitsubishi Evo', 'Nissan GTR'), 'bikes' => array(), ), ); $callback = function($item) use (&$callback) { if (is_array($item)) { return array_filter($item, $callback); } if (!empty($item)) { return true; } }; var_dump(array_filter($raw, $callback)); $navigation = array( array( "title" => "Overzicht", "enabled" => 0, "submenu" => array( array( "title" => "Dashboard", "url" => "dashboard/", "module" => "Home", "icon" => "icon-home", "userlevel" => 0, "enabled" => 1 ), array( "title" => "Mijn statistieken", "url" => "user/stats/", "module" => "User", "icon" => "icon-stats", "userlevel" => 60, "enabled" => 1 ) ) ), array( "title" => "Acties", "enabled" => 1, "submenu" => array( array( "title" => "Alle acties", "url" => "action/", "module" => "Action", "icon" => "icon-list-alt", "userlevel" => 0, "enabled" => 0 ), array( "title" => "Mijn acties", "url" => "action/:user_id/", "module" => "Action", "icon" => "icon-list", "userlevel" => 60, "enabled" => 1 ), array( "title" => "Nieuwe actie", "url" => "new/", "module" => "Action", "icon" => "icon-plus", "userlevel" => 80, "enabled" => 1 ) ) ) ); $filterFunc = function($arr) use (&$filterFunc) { foreach ($arr as &$v) { if (!$v["enabled"]) unset($v); if (isset($v["userlevel"])) { if (($v["userlevel"] > 60)) unset($v); } if (isset($v["submenu"])) { $v["submenu"] = $filterFunc($v["submenu"]); } } return $arr; }; $navigation = $filterFunc($navigation); var_dump($navigation);

preferences:
38.41 ms | 402 KiB | 5 Q