簡體   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