首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FormStack :以嵌套数组的形式发布名称和地址字段的信息

FormStack :以嵌套数组的形式发布名称和地址字段的信息
EN

Stack Overflow用户
提问于 2013-03-05 23:12:59
回答 1查看 235关注 0票数 2

我正在尝试让FormStack将数据发送到我正在编写的脚本中,以便可以将其插入到我自己的MySQL数据库中。我能够获得数据并解析成如下所示的数组:

代码语言:javascript
复制
Array
(
  [FormID] => 1111111
  [UniqueID] => 222222
  [name_field1] => first = FirstName last = LastName
  [address_field1] => address = 123 Street Name address2 = Suite 1000 city = Exampleville state = WY zip = 12345
  [random_field] => random text
  [name_field2] => first = FirstName last = LastName
  [address_field2] => address = 123 Street Name address2 = Suite 1000 city = Exampleville state = WY zip = 12345
)

问题在于name_fields和address_fields的格式化方式。我对它进行了搜索和处理,我能够将数据放入它自己的数组中,但它的代码比我想要的要多得多,我必须为每个名称字段和每个地址字段复制它。还是像看起来那么单调乏味?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2013-03-07 02:05:02

这可能不是最优雅的解决方案,但我很高兴我能够想出任何解决方案。这是我想出来的:

代码语言:javascript
复制
foreach ($_POST as $key => $value) {
    if (preg_match("/address2 = /", $value)) {
        $search = array("address2 = ", "city = ", "state = ", "zip = ");
        $addr_step1 = str_replace($search, "|", $value);
        $addr_step2 = str_replace("address = ", "", $addr_step1);
        $addr_step3 = explode("|", $addr_step2);
        $addr_keys = array("Address", "Address2", "City", "State", "Zip");
        $value = array_combine($addr_keys, $addr_step3);
    } elseif (preg_match("/address = /", $value)) {
        $search = array("state = ", "zip = ");
        $addr_step1 = str_replace($search, "|", $value);
        $addr_step2 = str_replace("city = ", "| |", $addr_step1);
        $addr_step3 = str_replace("address = ", "", $addr_step2);
        $addr_step4 = explode("|", $addr_step3);
        $addr_keys = array("Address", "Address2", "City", "State", "Zip");
        $value = array_combine($addr_keys, $addr_step4);
    } elseif (preg_match("/first = /", $value)) {
        $name_step1 = str_replace("last = ", "|", $value);
        $name_step2 = str_replace("first = ", "", $name_step1);
        $name_step3 = explode("|", $name_step2);
        $name_keys = array("FirstName", "LastName");
        $value = array_combine($name_keys, $name_step3);
    }
    ${'f' . $key} = $value;
}

最后一位${'f'.$key} = $value;是给每个字段一个变量来寻址它(我让FormStack使用数字字段名,这就是为什么我在开头加上'f‘)。例如,像这样的东西..。

代码语言:javascript
复制
echo "$f12345678[City], $f12345678[State]";

会告诉我..。

代码语言:javascript
复制
New York, NY
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15227298

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档