string min,max length function

时间:2011-02-11 20:51:10

标签: php strlen

我正在尝试检查字符串的最小和最大长度:

如果我传递一个数组,如下所示,我想要返回值,如果为true,则返回NULL,如果为false:

$lenghts = array('a' => array('min' => 20, 'max' => 70),
                 'b' => array('min' => 50, 'max' => 800),
                 'c' => array('min' => 3,  'max' =>8));

值是:

$values = array('thread_title' => 'this is it', 'thread_content' => 'this is not it', 'thread_tags' => 'also not it')

修改

这就像早上5点(真的很困),我应该复制并粘贴正确的版本,对不起:

function string_min_max($string_array, $array)
{
   $returns = array();  # store returned values
   foreach ($array as $key)
   {
      #  check for minimum:
      if (array_key_exists('min', $key))
      {
         $minimum = (strlen($string_array[$key]) < $key['min'] ? $key = NULL : $key);
      }

      if (array_key_exists('max', $key))
      {
         $maximum = (strlen($string_array($key)) > $key['max'] ? $key = NULL : $key);
      }

      if ($minimum !== NULL && $maximum !== NULL)
      {
         $returns[$key]['min'] = $minimum;
         $returns[$key]['max'] = $maximum; 
      }
   }
}

这不起作用:

   string_min_max($values, $lengths);

3 个答案:

答案 0 :(得分:0)

此代码可简化为:

function string_min_max($array)
{
   $returns = array();  # store returned values
   foreach ($array as $key)
   {
      #  check for minimum:
      if (TRUE)
      {
         $minimum = (FALSE ? $key = NULL : $key);
      }
   }
}

OR:

function string_min_max($array)
{
   $returns = array();  # store returned values
   foreach ($array as $key)
   {
      $minimum = $key;
   }
}

OR:

function string_min_max($array)
{
   $returns = array();  # store returned values
}

OR:

(void)

所以答案是:不。它不起作用。

答案 1 :(得分:0)

没有太多关注细节,一个明显的问题是你没有从你的功能中返回任何东西;你正在构建一个数组,但你不使用它,所以它会在你的函数结束时被破坏。

我认为至少在你的功能结束时你需要这个:

  return $returns;
}         // end function

然后您可以调用您的函数:

$results = string_min_max($values, $lenghts);

答案 2 :(得分:0)

如果用它来验证字符串的长度和字符:

function checkString($string, $regex, $minlenght = 3, $maxlenght = 20) {
        if(preg_match($regex, $string) && strlen($string) >= $minlenght && strlen($string) <= $maxlenght) return true;
        return false;
}