3
foreach($_POST as $key => $value) {
    if($value)
        $sorted[$parent_key][$newkey] = $value;
    else
        unset($_POST[$key]);

$value可以是“0”或“任何字符串文本”。如果输入“0”,如何验证 $value 以使其通过?

我不能使用isset($value),因为$value是从foreach.
我不能使用empty($value),因为它将 0 视为空值。
我不能使用strlen($value),因为它将 0 视为空值。
我不能使用(!$value),因为它将 0 视为空值。

4

3 回答 3

1

您可以使用 strlen($value) 因为它不会将 0 视为空值。 这是证据

$a = 0;
echo strlen($a);

输出:

1
于 2012-10-18T16:34:02.220 回答
1

只需这样做:

if($value || $value === "0")
于 2012-10-18T16:34:11.533 回答
0
foreach($_POST as $key => $value) {
    if(!empty($value) || (string)$value === '0')
        $sorted[$parent_key][$newkey] = $value;
    else
        unset($_POST[$key]);
于 2012-10-18T16:35:27.883 回答