Modification des valeurs de tableau d'origine à l'aide de la boucle foreach en PHP
Lorsque vous travaillez avec des tableaux en PHP, en particulier des tableaux multidimensionnels, l'accès et la modification de leurs éléments peuvent être délicat. Un défi courant survient lors de l'utilisation de boucles foreach pour parcourir des tableaux et mettre à jour leurs valeurs d'origine.
Dans ce cas, considérons un tableau $fields représentant les informations des champs de formulaire :
$fields = [ "names" => [ "type" => "text", "class" => "name", "name" => "name", "text_before" => "name", "value" => "", "required" => true, ] ];
Maintenant, imaginez une fonction qui valide les champs, en définissant la clé "valeur" sur "Une erreur" si la saisie du formulaire correspondante est vide :
function checkForm($fields) { foreach ($fields as $field) { if ($field['required'] && strlen($_POST[$field['name']]) <= 0) { $fields[$field]['value'] = "Some error"; } } return $fields; }
Le La ligne problématique est :
$fields[$field]['value'] = "Some error";
Le but ici est de mettre à jour le tableau d'origine, mais il n'est pas immédiatement clair comment accéder à la clé du tableau (dans ce cas, "noms") dans la boucle.
Utiliser $key pour l'indexation du tableau d'origine
Une solution consiste à utiliser la variable $key disponible dans la boucle foreach. Il représente la clé de l'élément de tableau actuel en cours d'itération :
foreach ($fields as $key => $field) { if ($field['required'] && strlen($_POST[$field['name']]) <= 0) { $fields[$key]['value'] = "Some error"; } }
Cette approche utilise $field pour accéder aux valeurs du champ actuel et $fields[$key] pour manipuler le tableau d'origine, permettant une modification efficace. de la clé "valeur" de l'élément.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!