我在PHP中有一個POST,我不會總是知道將要處理的變量字段的名稱。
我有一個函數,將遍歷值(不過我也想抓住連同它的變量名。)
foreach ($_POST as $entry)
{
print $entry . "<br>";
}
一旦我弄清楚如何抓住變量名,我還需要弄清楚我如何使這個函數足夠智能,以檢測和循環變量的數組(如果我有一些複選框的值)。
我在PHP中有一個POST,我不會總是知道將要處理的變量字段的名稱。
我有一個函數,將遍歷值(不過我也想抓住連同它的變量名。)
foreach ($_POST as $entry)
{
print $entry . "<br>";
}
一旦我弄清楚如何抓住變量名,我還需要弄清楚我如何使這個函數足夠智能,以檢測和循環變量的數組(如果我有一些複選框的值)。
如果你只是想打印整個$ _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);
}
}
}
將一些padd荷蘭國際集團到嵌套的數組:
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,它將返回所有的字符串名稱。
你可以讓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>";
}
}
如果要檢測數組字段使用這樣的代碼:
foreach ($_POST as $key => $entry)
{
if(is_array($entry)){
print $key . ": " . implode(',',$entry) . "<br>";
}
else {
print $key . ": " . $entry . "<br>";
}
}
這是更好的使用:
if (${'_'.$_SERVER['REQUEST_METHOD']}) {
$kv = array();
foreach (${'_'.$_SERVER['REQUEST_METHOD']} as $key => $value) {
$kv[] = "$key=$value";
}
}
這個問題肯定不是局部的,因爲我經歷過類似的情況去。 – IcyFlame 2014-06-28 09:17:35