ユーザーのステータスを更新するフォームにチェックボックスのリストがあります。私は、新しいユーザーがチェックボックスで選択されたときにDBに挿入されるようにしたいと考えています。
私は採用しました: 最初にデータベースから2つの配列を取得し、アクティブなユーザーを取得しました。送信されたフォームから2番目に、どの値がチェックされますが、どのデータを挿入し、どのデータを非アクティブにする必要があるかを計算する方法がわかりませんか?
データベース内のものをループし、ユーザーがチェックしていない場合は削除します。
foreach ($from_db as $in_db) {
if ( ! in_array($in_db, $from_user) {
// TODO: remove $in_db from db
}
}
次に、ユーザーがチェックしたものをループし、それらがデータベースにない場合は追加します。
foreach ($from_user as $add_to_db) {
if ( ! in_array($add_to_db, $from_db) {
// TODO: add $add_to_db to db
}
}
2 つの配列を比較し、各項目を別の項目でチェックするだけです。1 つをハッシュ テーブルに変換して、別のテーブルを通過するときにチェックを高速化できます。
for each user_from_client {
if (user_from_client in db) {
if (!user_from_client.checked)
db.deactivate(user_from_client);
} else {
if (user_from_client.checked)
db.insert(user_from_client);
}
}