打印$ _POST变量名称以及值

Jos*_* U. 22 php forms arrays post

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

我有一个循环值的函数(但是我也想捕获随之而来的变量名.)

foreach ($_POST as $entry)
{
     print $entry . "<br>";
}
Run Code Online (Sandbox Code Playgroud)

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

Mic*_*son 42

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

print_r($_POST);
Run Code Online (Sandbox Code Playgroud)

要递归打印数组的内容:

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);
        }  
    } 
}
Run Code Online (Sandbox Code Playgroud)

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

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.' ');
        }  
    } 
}
Run Code Online (Sandbox Code Playgroud)

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

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


Jef*_*ake 5

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

foreach ($_POST as $key => $entry)
{
     print $key . ": " . $entry . "<br>";
}
Run Code Online (Sandbox Code Playgroud)

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

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