mailaddress
フィールドでない場合、$_POST
の値を大文字にしてアンダースコアを削除するのが苦労しています。私はほとんどそこにありますが、アンダースコアをチェックボックスグループ配列から削除することはできません。また、私は、このコードを最適化するにはもっと良い方法があると信じています。多次元配列のstr_replaceとucwords
$_POST = str_replace('_', ' ', $_POST);
foreach ($_POST as $k => $v) {
if (! is_array($v) && $k != 'mailaddress') {
$_POST[ $k ] = ucwords($v);
} else if (is_array($v)) {
$_POST[ $k ] = array_map('ucwords', $v);
}
}
入力
Array
(
[Q1] => Array
(
[0] => tag
[1] => bil_mc
[2] => cykel_gang
)
[Q2] => 1 3 ganger per manad
[Q3] => pa fritiden
[Q4] => Array
(
[0] => koper_biljett_i_appen
[1] => jojo_reskassa
[2] => jojo_period
[3] => reser_aldrig_kollektivt
)
[mailaddress] => '[email protected]'
...
);
最終結果
Array
(
[Q1] => Array
(
[0] => Tag
[1] => Bil Mc
[2] => Cykel Gang
)
[Q2] => 1 3 Ganger Per Manad
[Q3] => Pa Fritiden
[Q4] => Array
(
[0] => Koper Biljett I Appen
[1] => Jojo Reskassa
[2] => Jojo Period
[3] => Reser Aldrig Kollektivt
)
[mailaddress] => '[email protected]'
...
);
すべてのヘルプやsugessionしてください探しています?
入力した '$ _POST'と期待される出力を共有できますか? –
明らかに、 'str_replace'はサブ配列 –
では置き換えられません。' str_replace() '関数は' foreach() 'に適用する必要があります。 – CoursesWeb