我有一個使用輸入來創建和排列的表單。輸入不是全部必需的,但至少有一個是。清除表單中的數組元素
<form method="post" action="process.php">
<input type="text" name="MAC[]" maxlength="12" />
<input type="text" name="MAC[]" maxlength="12" />
<input type="text" name="MAC[]" maxlength="12" />
<input type="text" name="MAC[]" maxlength="12" />
<input class="submitbg" type="submit" value="Register" name="submit"/>
</form>
現在在process.php我想通過數組循環去除兩種類型的特殊字符:
;
然後讓全部大寫,並確認只有12個字符,然後序列化arrray。
$my_array = $_POST['MAC'];
foreach ($my_array as $val){
$val = strtoupper($val);
$val = str_replace(";","",$val);
$val = str_replace(":","",$val);
$val = trim($val);
if (strlen($val) != 12)){
$valid = false;
$error = "Your MAC address is not 12 characters long";
}
}
$mac_addresses = serialize($my_array);
// if valid is not false do something with the cleaned up array.
的問題:
- 將我的foreach循環保存更新的值回陣列?
- 如何檢查以確保至少有一個數組值?
問題是我的foreach循環會將更新後的值保存到數組中嗎?以及如何檢查,以確保至少有一個數組值 – Denoteone 2011-04-13 18:14:55
嗯,這取決於,你可以做'!empty($ array)'。但是如果你知道這些鍵是由'[]'自動設置的,你可以執行'isset($ array [0])'。要用這個問題更新你的帖子,因爲它對我來說似乎更清晰。 – Khez 2011-04-13 18:18:39