有沒有一種方法可以自動存儲在$_POST
或$_GET
超全域上的表格中提取數據的自動化(或至少自動化一些過程)?自動處理表格數據
我知道你可以通過foreach循環和其他類型的循環遍歷每個鍵/值對做一些事情,但有很多時候我有其他代碼需要這些數據,但不會在foreach循環內工作。
編輯:這是我能想到的一個例子。假設我有大量的發佈數據並希望將其插入到數據庫中。據我所看到的,做這樣的事情是不可能的,因爲我需要通過插入值到不同的列的各環路:
foreach($array as $key => $value) {
mysql_query(INSERT INTO table (somecolumn) VALUES($value);
}
此外,還有一件事我很想do是從發佈的數據中獲取所有值,並以某種方式將它們分配給一個變量;有點像extract()
,但沒有覆蓋其他變量的問題。我能想到的唯一的事情來處理這是以某種方式把數據放到一個數組,但我不知道這麼多更有效:
$data = array();
foreach($array as $key => $value) {
$data[$key] = $value;
}
我能想到的最後一個情況是,當我必須在foreach循環之外使用這些數據。如果我修改我的代碼以使所有內容都在foreach循環中執行,那麼我將限制在循環內部保留與表單數據有關的所有內容。如果變量和/或常量是在循環內部定義的,那麼它們不能在其外部訪問,對嗎?我最近一直在使用Java,並且習慣於更嚴格的範圍和嚴格的處理變量的方式:)
我一直在閱讀有關extract()
方法,但它看起來有點危險要使用的東西(覆蓋變量,安全漏洞等)。
對於處理大量數據的其他人(可以說25+表單域),你怎麼做?我厭倦了將像$data = $_POST['somedata']
這樣的變量分配到別處去使用它們......
謝謝!
詳細闡述「但有很多時候我有其他代碼需要這些數據,但在內部的foreach循環中根本無法工作。」什麼樣的代碼在foreach循環中不起作用? – mellamokb 2011-05-12 20:22:56
剛剛添加了幾個我能想到的例子 – Aaron 2011-05-12 20:49:06