мин. строка, функция максимальной длины - PullRequest
0 голосов
/ 11 февраля 2011

Я пытаюсь проверить минимальную и максимальную длину строк:

Если я передам ему массив, например, как показано ниже, я хочу, чтобы значения были возвращены, если истина, и NULL, если ложь:

$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')

;

EDIT

Это похоже на 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 голосов
/ 12 февраля 2011

Не обращая слишком много внимания на детали, очевидной проблемой является то, что вы не возвращаете что-либо из своей функции;вы создаете массив, но не используете его, поэтому он разрушается в момент завершения вашей функции.

Я думаю, что по крайней мере вам это понадобится в конце вашей функции:

  return $returns;
}         // end function

Затем вы можете вызвать свою функцию следующим образом:

$results = string_min_max($values, $lenghts);
0 голосов
/ 03 апреля 2014

, если использовать это для проверки строки по длине и символам:

function checkString($string, $regex, $minlenght = 3, $maxlenght = 20) {
        if(preg_match($regex, $string) && strlen($string) >= $minlenght && strlen($string) <= $maxlenght) return true;
        return false;
}
0 голосов
/ 12 февраля 2011

Этот код сводится к:

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
}

ИЛИ:

(void)

Так что ответ: нет. Это не сработает.

...