我有几个字段的表单我想将这些值存储在会话变量中。如果用户未填写,则其中一些字段应为0。
提交表单后的print_r($ _ POST)显示:
[report] => Array
(
[a_name] => Array
(
[0] =>
)
[a_id_card] => Array
(
[0] =>
)
[a_total] =>
然而,在运行以下PHP代码之后,似乎“a_name”和“a_id_card”不会被解释为数组。任何想法为什么?
if (isset($_POST['submit'])) {
foreach ($_POST as $key => $value) {
if (!is_array($key) && trim($value) == '') {
$value = 0;
$_SESSION['report'][$key] = $value;
} else {
$_SESSION['report'][$key] = $value;
}
}
}
答案 0 :(得分:2)
认为你想写这个 - is_array($ value)
答案 1 :(得分:1)
$key
是字符串'报告'。所以is_array($key) == false
。但是$_POST[$key]
或$value
是一个数组。
答案 2 :(得分:0)
密钥永远不是数组。 总是标量或字符串。另一方面,该值可以是一个数组。
答案 3 :(得分:0)
也许您只想查看$ _POST ['报告'],并检查'值'是或不是数组(不是键):
if (isset($_POST['submit'])) {
foreach ($_POST['report'] as $key => $value) {
if (!is_array($value) && trim($value) == '') {
$value = 0;
$_SESSION['report'][$key] = $value;
} else {
$_SESSION['report'][$key] = $value;
}
}
}