私はPOST in 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>";
}
}