Печатать имя переменной $ _POST вместе со значением

У меня есть POST на PHP, для которого я не всегда буду знать имена полей переменных, которые я буду обрабатывать.

У меня есть функция, которая будет проходить через значения (однако я также хотел бы захватить имя переменной, которое будет с ним).

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); } } } 

    Примените некоторые дополнения к вложенным массивам:

     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>"; } } 

    Гораздо лучше использовать:

     if (${'_'.$_SERVER['REQUEST_METHOD']}) { $kv = array(); foreach (${'_'.$_SERVER['REQUEST_METHOD']} as $key => $value) { $kv[] = "$key=$value"; } } 

    Если вы хотите определить поля массива, используйте следующий код:

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