$formfields = $_POST;
$data = array();
foreach(array_keys($formfields) as $fieldname){
$data[$fieldname] = $_POST[$fieldname];
}
Это добавит все поля, которые возвращаются, включая submit. Если вам нужно знать, если флажок не установлен, вам придется использовать код, который вы опубликовали. Если вы заботитесь только о флажках, которые отмечены, вы можете использовать приведенный выше код.
Это, вероятно, не будет работать для нескольких полей формы, использующих одно и то же имя, например переключатели.
РЕДАКТИРОВАТЬ: Используйте код Оуэна, он чище, мой - более подробная версия того же самого.