public static function validate($input)
 {
     $search_forms = array(array(), array(), array(), array(), array());
     if (!empty($input['search_forms']) && is_array($input['search_forms'])) {
         $search_fields = DispletRetsIdxSearchFieldsModel::$fields;
         foreach ($input['search_forms'] as &$form) {
             if (!empty($form) && is_array($form)) {
                 foreach ($form as &$column) {
                     if (!empty($column) && is_array($column)) {
                         foreach ($column as &$field) {
                             if (!empty($field) && is_array($field)) {
                                 foreach ($field as $key => &$value) {
                                     switch ($key) {
                                         case 'options':
                                             $value = !empty($value) && is_array($value) ? array_map('addslashes', $value) : array();
                                             break;
                                         case 'increment':
                                         case 'min':
                                         case 'max':
                                         case 'lease_max':
                                         case 'sale_min':
                                             if (DispletRetsIdxUtilities::empty_excluding_zero($value) && !DispletRetsIdxUtilities::empty_excluding_zero($search_fields[$field['field']]['range'][$key])) {
                                                 $value = $search_fields[$field['field']]['range'][$key];
                                             } else {
                                                 $value = DispletRetsIdxUtilities::remove_non_numeric_characters($value);
                                             }
                                             break;
                                         case 'range':
                                             if (!empty($value)) {
                                                 $value = array_filter(array_map(array('DispletRetsIdxUtilities', 'remove_non_numeric_characters'), explode("\n", $value)));
                                             } else {
                                                 $value = array();
                                             }
                                             break;
                                         default:
                                             $value = sanitize_text_field($value);
                                             break;
                                     }
                                 }
                                 if (!DispletRetsIdxUtilities::empty_excluding_zero($field['min']) && !DispletRetsIdxUtilities::empty_excluding_zero($field['max'])) {
                                     $count = 0;
                                     if ($field['field'] === 'price' || $field['field'] === 'price' || $field['field']) {
                                         $difference = intval(intval($field['max']) / 1000) - intval(intval($field['min']) / 1000);
                                         $increment = intval(intval($field['increment']) / 1000);
                                     } else {
                                         $difference = floatval($field['max']) - floatval($field['min']);
                                         $increment = floatval($field['increment']);
                                     }
                                     if (!empty($increment)) {
                                         $count = floor(($difference + 1) / $increment);
                                     } else {
                                         $count = intval($difference) + 1;
                                     }
                                     if ($count > 500) {
                                         add_settings_error('search_forms', 'search_forms', 'Too many options for ' . $field['label'] . '! Try a higher min, a lower max, or a higher increment to avoid having ' . number_format($count) . ' options.', 'error');
                                     }
                                 }
                             }
                         }
                         $column = array_values($column);
                     }
                 }
                 $form = array_values($form);
             }
         }
         foreach ($input['search_forms'] as $key => $search_form) {
             if (!empty($search_form)) {
                 $search_forms[$key] = $search_form;
             }
         }
     }
     return $search_forms;
 }