2012-08-14 19 views
0

我使用CodeIgniter的Form Validation類來驗證表單。在這個表格中,我有大約200個國家的複選框。我想驗證一系列國家都是有效的。我通過檢查數組值是否與我的數據庫中的實際國家ID相對應來做到這一點。我遇到的問題是,codeIgniter的表單驗證會驗證數組中200個國家/地區的每個國家/地區,從而導致對數據庫的200個查詢需要大約10秒鐘才能完成。無論如何CodeIgniter會驗證整個數組嗎?使用codeigniter表單驗證驗證整個數組的複選框?

回答

2

您可以跳過CodeIgniter的表單驗證,並將數據庫中的所有國家/地區加載到一個數組中,並將表單值加載到另一個數組中。然後你可以使用array_diff,看看是否有表單值沒有出現在數據庫中值:如果在$form_array沒有出現在數據庫中沒有值

$should_be_empty = array_diff($form_array, $database_array); 

$should_be_empty將是空的陣列。