微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php-字符串作为数组值,将在接受作为数组的函数中发送

我有一个称为validate()的方法,该方法接受数组作为参数.

例如.

$v->validate([
    'username' => [$username, 'required'],
    'email'    => [$email, 'required'],
    'password' => [$password, 'required'],
]);

所以我要做的是为此动态创建参数.虽然不知道正确的术语.例如!

$v->validate([
    'username' => [$username, 'required'],
    'email'    => [$email, 'required'],
    'password' => [$password, 'required'],            
    $validate_parameters
]);

像这样的东西,会有固定字段和其他动态字段将作为参数发送.它将翻译为:

$v->validate([
    'username'       => [$username, 'required'],
    'email'          => [$email, 'required'],
    'password'       => [$password, 'required'],
    'dynamicfield_1' => ['value_1', 'rule_1'],
    'dynamicfield_2' => ['value_2', 'rule_2'],
    'dynamicfield_3' => ['value_3', 'rule_3'],
]);

这是我的方法.

public function validateDynamicFields($compressed_field, $rules) {

    $parameters = '';

    foreach ($compressed_field as $key => $value) {

        // Well technically this will not work since it's not even an array or some sort.
        $parameters .= $key => [$value, $rules];

        // I even tried this and hope that it would work but it doesn't
        // $parameters .= "'{$key}' => [{$value}, '{$rules}'],";

    }

    return $parameters;
}

问题是,如何为validate()方法动态创建数组值?

解决方法:

您可以使用array_merge:

$v->validate(array_merge(
    [
      'username' => [$username, 'required'],
      'email'    => [$email, 'required'],
      'password' => [$password, 'required']
    ],
    $validate_parameters
));

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐