我在PHP中有一个POST,我不会总是知道我将要处理的变量字段的名称。
我有一个循环遍历值的函数(但我还想捕获与它一起使用的变量名。)
foreach ($_POST as $entry)
{
print $entry . "<br>";
}
一旦我弄清楚如何获取变量名称,我还需要弄清楚如何使该函数足够智能以检测并循环变量(如果它们存在)(即如果我有一些复选框值)。 )
答案 0 :(得分:41)
如果您只想打印整个$ _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。
答案 1 :(得分:5)
您可以让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>";
}
}
答案 2 :(得分:1)
使用起来要好得多:
if (${'_'.$_SERVER['REQUEST_METHOD']}) {
$kv = array();
foreach (${'_'.$_SERVER['REQUEST_METHOD']} as $key => $value) {
$kv[] = "$key=$value";
}
}
答案 3 :(得分:0)
如果要检测数组字段,请使用以下代码:
foreach ($_POST as $key => $entry)
{
if(is_array($entry)){
print $key . ": " . implode(',',$entry) . "<br>";
}
else {
print $key . ": " . $entry . "<br>";
}
}