如何使用PHP foreach更改原始数组值?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (21)

我的数组如下所示:

$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循环中获取当前数组的名称(在本例中为名称)?

提问于
用户回答回答于

我会建议做以下事情:

foreach ($fields as $key => $field) {
    if ($field['required'] && strlen($_POST[$field['name']]) <= 0) {
        $fields[$key]['value'] = "Some error";
    }
}

所以基本上$field在你需要这些值的时候使用,以及$fields[$key]当你需要改变数据的时候。

用户回答回答于

使用&

foreach($arr as &$value)
{
     $value = $newVal;
}

&传递数组的值作为参考,并且不创建变量的新实例。

扫码关注云+社区