在 Foreach 循环中更改 PHP 数组值(重复修复)
在多维数组中,使用 foreach 循环遍历每个元素可以呈现尝试修改原始数组时的复杂性。
考虑以下内容示例:
$fields = [ "names" => [ "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"; // Here's the issue } } return $fields; }
有问题的行是 $fields[$field]['value' ] =“一些错误”;。要修改原始数组,需要访问当前元素的键而不是值,如下所示:
foreach ($fields as $key => $field) { if ($field['required'] && strlen($_POST[$field['name']]) <= 0) { $fields[$key]['value'] = "Some error"; } }
注意 $fields[$key]['value 中 $key 的使用'] 引用外循环中当前元素的键。这可确保原始数组按预期修改。
以上是如何在 Foreach 循环中正确修改 PHP 数组值?的详细内容。更多信息请关注PHP中文网其他相关文章!