有没有一种方法可以自动存储在$_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