繁体   English   中英

如何从 If 语句中获取数组?

[英]How can I get an array from an If statement?

我正在尝试检测输入字段中字符串长度的条件。 我需要知道 if 语句满足哪些条件,然后将其/那些放在一个数组中以显示。 这是我的代码:

                if(strlen($post['first_name']) > 25
                    || strlen($post['last_name']) > 25
                    || strlen($post['email']) > 40
                    || strlen($post['phone']) > 15
                ){
                  $lengthTooLong = array();  
                  //do this
                }

你可以使用foreach。

// define which keys of $post you want to check
// array value defines max length of value from $post[$key]
$keyToMaxLength = array(
    'first_name' => 25,
    'last_name' => 25,
    'email' => 40,
    'phone' => 15,
);
$lengthTooLong = array();
foreach($keyToMaxLength as $key => $maxLength) {    
    if(strlen($post[$key]) > $maxLength) {
        $lengthTooLong[] = $key; // or $post[$key]
    }
}
echo var_export($lengthTooLong, true); 

工作示例

这个怎么样?

$lengthTooLong = array();
if (strlen($post['first_name'])>25)) $lengthTooLong['first_name'] = $post['first_name'];
if (strlen($post['last_name'])>25)) $lengthTooLong['last_name'] = $post['last_name'];
/* etcetera */
if (count($lengthTooLong) == 0) unset $lengthTooLong;

当不需要时,它会摆脱你的数组。

你可以尝试这样做

$lengthTooLong=array();
if(strlen($post['first_name']) > 25){
array_push($lengthTooLong, "first_name");
}
if(strlen($post['last_name']) > 25){
array_push($lengthTooLong, "last_name");
}
if(strlen($post['email']) > 40){
array_push($lengthTooLong, "email");
}
if(strlen($post['phone']) > 15){
array_push($lengthTooLong, "phone");
}
if(count($lengthTooLong>0){
   //do this
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM