我正在尝试检查字符串的最小和最大长度:
如果我传递一个数组,如下所示,我想要返回值,如果为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);
答案 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;
}