[解決済み] PHPのforeachが元の配列の値を変更する [重複]。
2022-04-22 12:03:10
質問
私は多次元配列の初心者ですが、これはとても悩ましいことです。
私の配列は次のようなものです。
$fields = array(
"names" => array(
"type" => "text",
"class" => "name",
"name" => "name",
"text_before" => "name",
"value" => "",
"required" => true,
)
)
そして、これらの入力が必要であるかどうかをチェックする関数を作成しました。
function checkForm($fields){
foreach($fields as $field){
if($field['required'] && strlen($_POST[$field['name']]) <= 0){
$fields[$field]['value'] = "Some error";
}
}
return $fields;
}
さて、私の問題はこの行です。
$fields[$field]['value'] = "Some error";
元の配列の内容を変更したいのですが、foreachループで現在の配列の名前(この例ではnames)を取得するにはどうしたらよいでしょうか?
どのように解決するのですか?
PHPでは、参照渡し(
&
) は、......論議を呼びそうです。なぜそれが必要なのか、そしてその結果をテストしない限り、使わないことをお勧めします。
私は次のようにすることをお勧めします。
foreach ($fields as $key => $field) {
if ($field['required'] && strlen($_POST[$field['name']]) <= 0) {
$fields[$key]['value'] = "Some error";
}
}
そのため、基本的には
$field
値を必要とする場合は
$fields[$key]
は、データを変更する必要がある場合です。
関連
-
[解決済み】警告: file_get_contents(): https:// ラッパーがサーバー構成ですべて無効になっています。
-
[解決済み] libapache2-mod-php7 パッケージの場所がわからない
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScript で配列に値が含まれているかどうかを確認するにはどうすればよいですか?
-
[解決済み] 配列からArrayListを作成する
-
[解決済み] 配列に特定のインデックスで項目を挿入する方法 (JavaScript)
-
[解決済み] PHPで配列から要素を削除する
-
[解決済み】オブジェクトの配列を文字列のプロパティ値でソートする
-
[解決済み】PHPの'foreach'は実際どのように動作するのですか?
-
[解決済み] リファレンス - このシンボルはPHPで何を意味するのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】phpのob_start()の使い道は?
-
[解決済み】PHPで空の値からデフォルトオブジェクトを作成する?
-
[解決済み】PHP定数「PHP_EOL」はいつ使うの?
-
[解決済み】Phpのincludeが機能しない? 関数がincludeされない
-
[解決済み】「Fatal error: Class 'MySQLi' not found "を解決するには?
-
[解決済み】子テーマのCSSが親テーマをオーバーライドしない
-
[解決済み】Laravel 5.2 Storage::makeDirectory($dir) でディレクトリが作成されない。
-
[解決済み】既に開始されているPHPセッション【重複あり
-
[解決済み] 入力ファイルが指定されていない
-
[解決済み] PHP と mod_fcgid: handle_request_ipc 関数で ap_pass_brigade が失敗する。