打印 $_POST 变量名称以及值

2022-08-30 18:15:47

我在PHP中有一个POST,我不会总是知道我将要处理的变量字段的名称。

我有一个函数将遍历值(但是我也想捕获与之相关的变量名称。

foreach ($_POST as $entry)
{
     print $entry . "<br>";
}

一旦我弄清楚了如何获取变量名称,我还需要弄清楚如何使函数足够智能,以检测并循环访问变量的数组(如果它们存在)(即如果我有一些复选框值)。


答案 1

如果您只想打印整个 $_POST 数组以验证数据是否正确发送,请使用print_r

print_r($_POST);

以递归方式打印数组的内容:

printArray($_POST);

function printArray($array){
     foreach ($array as $key => $value){
        echo "$key => $value";
        if(is_array($value)){ //If $value is an array, print it as well!
            printArray($value);
        }  
    } 
}

对嵌套数组应用一些填充:

printArray($_POST);

/*
 * $pad='' gives $pad a default value, meaning we don't have 
 * to pass printArray a value for it if we don't want to if we're
 * happy with the given default value (no padding)
 */
function printArray($array, $pad=''){
     foreach ($array as $key => $value){
        echo $pad . "$key => $value";
        if(is_array($value)){
            printArray($value, $pad.' ');
        }  
    } 
}

如果给定变量是数组,则is_array 返回 true。

您还可以使用array_keys它将返回所有字符串名称。


答案 2

您可以让 foreach 循环显示索引以及值:

foreach ($_POST as $key => $entry)
{
     print $key . ": " . $entry . "<br>";
}

至于数组检查,请使用is_array()函数:

foreach ($_POST as $key => $entry)
{
     if (is_array($entry)) {
        foreach($entry as $value) {
           print $key . ": " . $value . "<br>";
        }
     } else {
        print $key . ": " . $entry . "<br>";
     }
}