在 PHP 中使用 foreach 循环修改原始数组值
在 PHP 中使用数组(特别是多维数组)时,访问和修改其元素可以很棘手。当使用 foreach 循环迭代数组并更新其原始值时,会出现一个常见的挑战。
在这种情况下,让我们考虑一个表示表单字段信息的数组 $fields:
$fields = [ "names" => [ "type" => "text", "class" => "name", "name" => "name", "text_before" => "name", "value" => "", "required" => true, ] ];
现在,想象一个验证字段的函数,如果相应的表单输入是,则将“value”键设置为“Some error”空:
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";
这里的目标是更新原始数组,但目前还不清楚如何访问数组键(在本例中) , "names") 在循环中。
使用 $key 作为原始数组索引
一种解决方案是利用 foreach 循环中可用的 $key 变量。它表示当前正在迭代的数组元素的键:
foreach ($fields as $key => $field) { if ($field['required'] && strlen($_POST[$field['name']]) <= 0) { $fields[$key]['value'] = "Some error"; } }
这种方法使用 $field 访问当前字段的值,并使用 $fields[$key] 操作原始数组,从而实现高效修改元素的“value”键。
以上是如何在 PHP 中使用 foreach 循环修改原始数组值?的详细内容。更多信息请关注PHP中文网其他相关文章!