如何使用foreach循环验证数组?

时间:2014-12-18 17:25:32

标签: php arrays wordpress validation foreach

我有工作代码用于验证我的颜色选项。

 if ( !function_exists( 'sanitize_hex_color' ) ) {
     function sanitize_hex_color($color) {
        if ( '' === $color )
     return '';

  // 3 or 6 hex digits, or the empty string.
  if ( preg_match('|^#([A-Fa-f0-9]{3}){1,2}$|', $color ) )
    return $color;

  return null;
  }
}

function validate_color_option($options){
//Check if hex color and sanitize
$options['wrapper_background_color'] = sanitize_hex_color($options['wrapper_background_color']);
$options['display_bg'] = sanitize_hex_color($options['display_bg']);

//Strips all html from input type text (NOT a color field)
$options['big_heading'] = wp_strip_all_tags($options['big_heading']);

return $options;

}//Function end

但是由于我会有很多色域,我想将我的颜色存储到数组中,做一个foreach循环并通过 sanitize_hex_color 函数验证我的颜色选项。像这样:

if ( !function_exists( 'sanitize_hex_color' ) ) {
     function sanitize_hex_color($color) {
        if ( '' === $color )
     return '';

  // 3 or 6 hex digits, or the empty string.
  if ( preg_match('|^#([A-Fa-f0-9]{3}){1,2}$|', $color ) )
    return $color;

  return null;
  }
}

function validate_color_option($options){
  $colors = array(
  'color1' => $options['wrapper_background_color'],
  'color2' => $options['display_bg']
  );

   foreach($colors as $key => $val) {
   $colors[$key] = sanitize_hex_color($val);
   }

   //Strips all html from input type text (NOT a color field)
   $options['big_heading'] = wp_strip_all_tags($options['big_heading']);

   return $options;

}//Function end

说实话,我不知道如何使用foreach循环进行验证然后返回我的值:(你们可以帮助我吗?谢谢!!

1 个答案:

答案 0 :(得分:0)

使用array_map()

$colors = array(<colors>);
array_map("sanitize_hex_color", $colors);

它应返回每种颜色的结果数组。 然后你以某种方式进一步处理它。