热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PHP中将字符串作为数组值传递给接收数组的函数处理

我有一个称为validate()的方法,该方法接受数组作为参数.例如.$v->validate([ 'username' => [$username, 'required'], 'emai

我有一个称为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
));


推荐阅读
  • 函子(Functor)是函数式编程中的一个重要概念,它不仅是一个特殊的容器,还提供了一种优雅的方式来处理值和函数。本文将详细介绍函子的基本概念及其在函数式编程中的应用,包括如何通过函子控制副作用、处理异常以及进行异步操作。 ... [详细]
  • 本文探讨了异步编程的发展历程,从最初的AJAX异步回调到现代的Promise、Generator+Co以及Async/Await等技术。文章详细分析了Promise的工作原理及其源码实现,帮助开发者更好地理解和使用这一重要工具。 ... [详细]
  • 3.[15]Writeaprogramtolistallofthekeysandvaluesin%ENV.PrinttheresultsintwocolumnsinASCIIbet ... [详细]
  • 本文详细介绍了如何在 Node.js 环境中利用 Nodemailer 库实现邮件发送功能,包括环境配置、代码实现及常见问题解决方法。 ... [详细]
  • 本文探讨了如何高效地计算数组中和为2的幂的偶对数量,提供了从基础到优化的方法。 ... [详细]
  • 本文详细介绍了在Luat OS中如何实现C与Lua的混合编程,包括在C环境中运行Lua脚本、封装可被Lua调用的C语言库,以及C与Lua之间的数据交互方法。 ... [详细]
  • Zabbix自定义监控与邮件告警配置实践
    本文详细介绍了如何在Zabbix中添加自定义监控项目,配置邮件告警功能,并解决测试告警时遇到的邮件不发送问题。 ... [详细]
  • 本文探讨了在PHP中使用foreach循环遍历数组后,为何不能再通过while结合list和each函数进行遍历的原因,并提供了详细的解释。 ... [详细]
  • 在Qt框架中,信号与槽机制是一种独特的组件间通信方式。本文探讨了这一机制相较于传统的C风格回调函数所具有的优势,并分析了其潜在的不足之处。 ... [详细]
  • 利用Node.js实现PSD文件的高效切图
    本文介绍了如何通过Node.js及其psd2json模块,快速实现PSD文件的自动化切图过程,以适应项目中频繁的界面更新需求。此方法不仅提高了工作效率,还简化了从设计稿到实际应用的转换流程。 ... [详细]
  • 本文探讨了使用lightopenid库实现网站登录,并在用户成功登录后,如何获取其姓名、电子邮件及出生日期等详细信息的方法。特别针对Google OpenID进行了说明。 ... [详细]
  • 本文探讨了Node.js后端开发的基础知识,包括模块源码的使用方法、前后端源码的区别以及如何在命令行环境中编译Node.js源代码。 ... [详细]
  • Docker安全策略与管理
    本文探讨了Docker的安全挑战、核心安全特性及其管理策略,旨在帮助读者深入理解Docker安全机制,并提供实用的安全管理建议。 ... [详细]
  • 本文介绍了如何利用jQuery实现对网页上多个div元素的显示与隐藏控制,包括基本的toggle方法及更复杂的显示隐藏逻辑。 ... [详细]
  • 长期从事ABAP开发工作的专业人士,在面对行业新趋势时,往往需要重新审视自己的发展方向。本文探讨了几位资深专家对ABAP未来走向的看法,以及开发者应如何调整技能以适应新的技术环境。 ... [详细]
author-avatar
做条温顺的鱼_169
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有