PHP foreach alterar valores da matriz original

Eu sou muito novo em matrizes multidimensionais, e isso está me incomodando muito.

Minha matriz é a seguinte:

$fields = array(
    "names" => array(
         "type"         => "text",
         "class"        => "name",
         "name"         => "name",
         "text_before"  => "name",
         "value"        => "",
         "required"     => true,
    )
)

Então eu tenho uma função verificando se essas entradas estão preenchidas, se forem necessárias.

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

Agora meu problema é essa linha

$fields[$field]['value'] = "Some error";

Eu quero alterar o conteúdo da matriz original, desde que eu estou retornando isso, mas como faço para obter o nome da matriz atual (nomes neste exemplo) no meu loop foreach?

questionAnswers(5)

yourAnswerToTheQuestion