小编典典

PHP foreach更改原始数组值

all

我对多维数组很陌生,这让我很困扰。

我的数组如下:

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


阅读 75

收藏
2022-08-27

共1个答案

小编典典

在 PHP 中,通过引用传递 ( &)是……有争议的。我建议不要使用它,除非您知道为什么需要它并测试结果。

我建议执行以下操作:

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

因此,基本上$field在您需要值以及$fields[$key]需要更改数据时使用。

2022-08-27