PHP将$ _POST值转换为字符串

时间:2012-03-23 15:17:18

标签: php

我希望能够将所有帖子数据转换为字符串,但只保留字符串变量中的值。

因此,如果我发布的数据如下所示:

Array ( [alloy] => Array ( [0] => K18 [1] => ) 
        [color] => Array ( [0] => Gold [1] => ) 
        [stone] => Array ( [0] => Diamond [1] => ) 
        [dimension] => Array ( [0] => 3cm [1] => ) 
        [button1] => Submit ) 

我希望它最终看起来像:$ data ='K18,彩金,钻石,3厘米';

我尝试过序列化,破坏数组,http_build_query,但它们不是我需要的。

如果它有助于获得整个想法,我正在从4组复选框和单选按钮数组中收集数据,我想将选定的值放入分隔的字符串并保存到我的数据库中。

2 个答案:

答案 0 :(得分:2)

也许这就是你所需要的:

$s = array();
foreach ($_POST as $k => $v) {
  if (is_array($v)) {
    if ('color' === $k) {
      array_push($s, implode('', array($k, $v[0])));
    } else {
      array_push($s, $v[0]);
    }
  }
}
echo implode(', ', $s); 

答案 1 :(得分:1)

这是一个小技巧。分组时使用name[]代替name。这样,$ _POST [“name”]变量将是一个数组,就像你想要的那样。

示例:

<input type="checkbox" name="inputname[]" value="1" />
<input type="checkbox" name="inputname[]" value="2" />
<input type="checkbox" name="inputname[]" value="3" />

PHP

print_r($_POST['inputname']);

//如果全部选中

则输出
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
)

注意:数组将仅包含选中的值