PHP将$ _POST值转换为字符串
问题描述:
我希望能够将所有发布数据转换为字符串,但只保留字符串变量中的值。
所以,如果我发布的数据是这样的:
Array ([alloy] => Array ([0] => K18 [1] =>)
[color] => Array ([0] => Gold [1] =>)
[stone] => Array ([0] => Diamond [1] =>)
[dimension] => Array ([0] => 3cm [1] =>)
[button1] => Submit)
我想它终于看起来像:$数据=“K18,彩金,钻石,3厘米”;
我试过serialize,imploding数组,http_build_query,但他们不是我所需要的。
如果它有助于获得整个想法,我从4组复选框和单选按钮数组收集数据,我想将选定的值放入分隔字符串并保存到我的分贝。
答
也许这是你所需要的:就像你需要什么
$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);
答
这里有一个小技巧。分组时使用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
)
注:该阵列将只包含检查的值
+0
我的收音机和复选框已按照您的建议命名。请阅读我的更新(改写)的问题。 – bikey77 2012-03-23 15:28:52
但是'POST'数据*** ***是一个数组... – JYelton 2012-03-23 15:18:08
'serialize'或'json_encode()'声音。问题在哪里? – 2012-03-23 15:18:34
你能给我们提供一些关于你正在收集的数据的信息,以及为什么像'serialize'这样的东西不能工作? – 2012-03-23 15:19:32