如何通过引用动态设置多维数组中的值

2024-01-07

这整个晚上都让我发疯。基本上,我需要在清理值后在多维数组中设置一个特定值,然后在验证值后再次设置(也许,取决于验证;如果验证失败,则需要将值设置为空字符串)。假设我有这个帖子数组:

$data['should']['be']['int'] = ' yjd';

清理该值后filter_var( $value, FILTER_SANITIZE_NUMBER_INT );我得到一个空字符串。然后我需要以某种方式设置该值$data['should']['be']['int']为空字符串。

然后该值被传递给验证函数,该函数失败,因为空字符串不是整数。同样,该验证值需要设置为$data['should']['be']['int']到一个空字符串。

在整个验证过程开始之前,我将所有相关的键保存在一个数组中,所以当我需要清理或验证时,我已经得到了类似的东西:

$keys = array(
    0 => 'should',
    1 => 'be',
    2 => 'int'
);

我尝试然后访问$data通过引用在 foreach 循环中使用上述键的数组&$data数组来设置新值,但无论我尝试什么,都无法做到。上面只是一个简化的例子。整个事情是验证类的一部分,所以我不知道传递的确切深度$data array.

任何指示将不胜感激!感谢您的帮助!

Edit:以为我无法编辑帖子,但最终它只是我的互联网连接。请忽略我下面的评论。无论如何,这是我尝试递归调用的方法:

protected function set_value( &$data, $value ) {
    foreach( $data as &$val ) {
        if( is_array( $val ) ) {
            $this->set_value( $val, $value );
        } else {
            $val = $value;
        }
    }
}

为了开始循环,我这样做了:

$this->set_value( $data[$keys[0]], $value );

你可以试试

$data = array();
$keys = array(
        0 => 'should',
        1 => 'be',
        2 => 'int'
);

$value = 'yjd';



echo "<pre>";
setValue($data,$keys,$value);
print_r($data);

Output

Array
(
    [should] => Array
        (
            [be] => Array
                (
                    [int] => yjd
                )

        )

)

使用的功能

function setValue(&$data, $path, $value) {
    $temp = &$data;
    foreach ( $path as $key ) {
        $temp = &$temp[$key];
    }
    $temp = $value;
    return $value ;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过引用动态设置多维数组中的值 的相关文章

  • 从移动版本切换到完整网站(桌面版本)

    我使用此代码将用户从桌面版本引导到我的移动网站
  • 使用 GD lib 过滤器标准化 CSS 过滤器

    我想让用户拖动范围滑块并通过实时预览 CSS 滤镜 调整图像的亮度和对比度 然后使用 GD 库保存调整 但是 我似乎无法从 CSS 过滤器和 GD lib 亮度和对比度过滤器获得相同的结果 我的 CSS 过滤器范围为 50 150 其中 1
  • 如何在 Laravel 中基于 application/json 标头加载路由

    我正在使用application json标头来控制我的控制器在收到请求时的行为 我需要在单元测试中的 POST 中包含application json header 我试过了 public function testStore this
  • PHP 5.3 中可以使用 new 作为方法名称吗?

    我很嫉妒 Ruby 使用 new 作为方法 在 PHP 5 3 中是否可以使用命名空间来实现这一点 class Foo public function new echo Hello 如你看到的here http php net manual
  • 从 Yii2 中的联结表检索数据

    我试图从 Yii2 中的连接表获取数据无需额外查询 我有 2 个模型 用户 组 通过连接表 user group 关联 在 user group 表中 我想存储此关系的额外数据 管理标志 将数据添加到连接表的最佳方法是什么 link 方法接
  • 如何将从 date_parse 返回的日期数组转换回日期字符串

    我有一个由 php 例程 date parse 返回的格式的日期数组 我需要将此日期数组转换回日期字符串 我正在寻找一个与 date parse 例程相反的函数 这是一个接受日期数组作为参数并返回日期字符串的函数 http php net
  • 为什么我的 Facebook 访问令牌突然停止工作? “OAuthException:验证访问令牌时出错。”

    我有一个 iframe Facebook 应用程序 它使用 Facebook PHP SDK 进行身份验证并进行 api 调用 在身份验证过程中 系统会提示用户输入基本信息和离线访问 如果他们允许我的应用程序访问 Facebook 会将它们
  • Ioncube 编码的文件是否可以解码?

    我是一名 php 开发人员 我的客户计划分发一个使用 Php 开发的软件 计划使用 ioncube 或类似软件对文件进行编码 在谷歌搜索时 我发现很少有人解码这些文件 这些文件使用 ioncube 甚至其他软件进行编码 如果您询问是否可以破
  • 通过 PHP 检测 excel .xlsx 文件 mimetype

    我无法通过 PHP 检测 xlsx Excel 文件的 mimetype 因为它是 zip 存档 文件实用程序 file file xlsx file xlsx Zip archive data at least v2 0 to extra
  • PHP curl exec 在 php 脚本相同域上失败

    我使用 php curl 从同一域 url 中的 php 脚本获取内容 但我收到curl exec 错误 curl 错误代码为 28 或操作超时 经过几天的调试 我发现它可以在 htm 等非脚本页面上工作 但不能在 php 上工作 如果 u
  • 为什么将 MySQL 凭据放在 www 目录之外? [复制]

    这个问题在这里已经有答案了 可能的重复 将核心类放在 Web 根目录之上 好还是坏主意 https stackoverflow com questions 3648739 putting core classes above the web
  • 不使用 PHP 提交联系表单

    我还是一名学生 今天我们的讲师告诉我们 无需使用 mailto 函数即可提交联系我们表单的唯一方法是使用 PHP 我发誓去年另一位讲师向我们展示了一种仅使用 javascript 的方法 是否可以使用基本表单和 javascript 提交反
  • Mysql获取特定表的最后一个id

    我必须从特定的插入表中获取最后的插入 ID 可以说我有这个代码 INSERT INTO blahblah test1 test 2 VALUES test1 test2 INSERT INTO blahblah2 test1 test 2
  • 在 wampserver 2.2 上安装 php_imagick.dll PHP 扩展

    我使用的是 32 位操作系统的 Windows 7 我安装了 ImageMagick 6 8 7 Q16Link https www imagemagick org script download php windows我能够从命令行 转换
  • 无需 cron 在后台发送邮件

    我想知道是否有一种方法可以运行 PHP 循环 以便在后台向订阅者发送几百封电子邮件 我的目标是格式化新闻通讯 单击发送 然后关闭浏览器或更改页面 当然 发送电子邮件的实际过程将在后台运行 不会因浏览器关闭而中断 我知道这可以通过 cron
  • 如何使用 php 从字符串中提取日期

    我需要从字符串中提取日期 下面是我的代码和字符串 str Updated status to Masters Software Engineering Enrolled Documents to Send on 03 06 2014 14
  • 从远程托管上的 PHP 获取 PHP 错误日志

    是否有 PHP 函数或其他方式以字符串形式获取 PHP 错误日志 我需要这个 因为我无法访问在其他人的服务器上运行的站点的错误日志 他提出通过电子邮件将错误日志发送给我 但这不太方便 有什么方法可以将错误日志输出到 PHP 页面吗 我意识到
  • 如何在PHP中获取div中的所有链接

    我想从另一个网站打开一个页面 并提取一个中的所有链接 href div of class layout 2 2 在此页面中 我如何使用 PHP 来做到这一点 我想复制layout 2 2中的每个链接this https url 网页 这是我
  • node-mongodb-native的插入性能

    我正在使用 MongoDB 测试 Node js 的性能 我知道其中每一个都很好 彼此独立 但我正在尝试一些测试来感受它们 我遇到了这个问题 但无法确定来源 问题 我正在尝试在单个 Node js 程序中插入 1 000 000 条记录 它
  • 如何使用 PHP 查找字符串中字符的序列模式?

    假设我有随机的文本块 EAMoAAQAABwEBAAAAAAAAAAAAAAABAgMFBgcIBAkBAQABBQEBAAAAAAAAAAAAAAAGAgMEBQcBCBAAAQMDAgMEBQcIBQgGCwEAAQACAxEEBSEG

随机推荐

  • Objective C - 如何连接整个字符串数组?

    我是 Objective C 新手 我想编写一个方法 它接受一个字符串数组并返回一个连接字符串 每个字符串之间有一个逗号 所以如果一个数组是 a b c d 我想返回a b c d 最简单的方法是什么 方法有很多种 最简单的就是 yourA
  • 如何在Python脚本中设置PATH=%PATH%作为环境?

    我正在尝试从Python程序启动一个exe文件 该exe文件是使用Visual Studio编译的C 项目的输出 在此 c 项目的属性中 配置 gt 属性 gt 调试 gt 环境 中的以下设置 PATH PATH lib testfolde
  • 与库版本相关的 TypeScript @types 版本

    谁能解释一下 TypeScript types 背后的版本控制https github com DefinitelyTyped DefinitelyTyped https github com DefinitelyTyped Definit
  • 像 Facebook 一样从任何 URL 获取特定图像

    My Question might be looks like similar to other questions but really this is not according to my knowledge i can t unde
  • 开发算法的人和开发人员之间最有效的工作流程是什么?

    我们正在开发具有视频模式识别功能的软件 我们有 7 位数学家正在创建算法 另外 我们有 2 名开发人员使用这些算法维护 开发应用程序 问题在于数学家使用不同的开发工具来创建算法 例如 Matlab C C 另外 因为他们不是开发人员 所以不
  • Android 在单击按钮时返回到第一个 Activity

    我正在编写一个应用程序 其中处理 4 个活动 比方说 A B C 和 D 活动 A 调用 B B 调用 C C 调用 D 在每个活动上 我都有一个名为 home 的按钮按钮 当用户单击任何 B C D 活动中的主页按钮时 应用程序应该返回到
  • 如何创建列表的 numpy 数组?

    我想创建一个 numpy 数组 其中每个元素都必须是一个列表 因此稍后我可以向每个元素附加新元素 我已经在谷歌和堆栈溢出上查看过 但似乎无处可寻 主要问题是 numpy 假设你的列表必须成为一个数组 但这不是我想要的 正如你发现的那样 np
  • 如何从 ngGrid 中显示的按钮调用作用域方法 - 在 Angular js 中

    angular module harbinger controller Admin UserlistController function rootScope scope location http userService etc scop
  • 使用 Dagger 2 进行 Presenter 注入

    我刚刚开始使用 Dagger 2 我在网上发现了数千个指南 每个指南都有不同的实现 我现在有点困惑 所以基本上这就是我现在写的 应用程序模块 java Module public class AppModule Application mA
  • 如何获取属于自定义属性的属性?

    我需要从自定义属性中查找应用自定义属性的属性的类型 例如 MyAttribute string MyProperty get set 给定 MyAttribute 实例 我如何获取 MyProperty 的类型描述符 换句话说 我正在寻找
  • 可滚动 TextView 不允许在应用程序暂停后选择文本

    我有一个可滚动的TextView用户可以在其中选择文本 我通过将移动方法设置为来添加滚动条ScrollingMovementMethod Problem 除非应用程序暂停 例如 切换应用程序后 否则选择效果很好 一旦应用程序再次处于活动状态
  • 在本地开发 Azure 函数

    我领导着一个由天蓝色函数开发人员组成的大型团队 因此 微软引用的大多数使用 azure Web 界面的示例对我来说不起作用 我正在使用模拟器在本地开发Azure功能以节省一些成本 我通过 Visual Studio 将所有功能发布到我的集成
  • 如何在 Flutter 中使用 Dio 和 multi_image_picker 插件上传多张图片

    我想在 Flutter 中使用 Dio 和 multi image picker 插件上传多张图片 List
  • Android 5.0 上点击 Switch 崩溃

    在 Android 5 0 中单击我的应用程序中的开关时 应用程序崩溃并显示如下所示的 logcat logcat 没有在其中的任何地方引用我的代码 并且此开关在所有以前的版本上都运行良好 除了背景颜色之外 该开关看起来是不可见的 并且只有
  • 在 Unix shell 中将一列数字相加

    给定文件列表files txt 我可以得到它们的尺寸列表 如下所示 cat files txt xargs ls l cut c 23 30 会产生这样的结果 151552 319488 1536000 225280 我怎样才能得到tota
  • 如何确定导致 Windows Installer 重复自我修复的原因?

    如何仅记录导致 Installshield 2008 所做的 MSI 文件通过 重新安装 的更改自我修复 自修复的原因是什么 如何使用 Installshield 2008 禁用 MSI 自我修复 自我修复 简单简短的解释 如果我删除文件
  • SampleSyncAdapter 断点不起作用

    我正在使用 Eclipse 来了解 SampleSyncAdapter 示例的工作原理 我无法让断点发挥作用 我在多个位置设置了断点 但没有一个被击中 例如 AuthenticatorActivity onCreate 永远不会被调用 有人
  • 从 pdf 中提取表格

    我正在尝试从这个表中获取数据PDF https www dropbox com s y3nivxhjvvzva7d test1 pdf dl 0 我尝试过 pdfminer 和 pypdf 运气不错 但我无法真正从表中获取数据 This i
  • jQuery 触发器在 IE 中不起作用。为什么?

    XynBp0 find input each function if this attr value Cancel this trigger click 在 IE7 中不起作用 这很奇怪 但尝试创建一个自定义事件 XynBp0 input
  • 如何通过引用动态设置多维数组中的值

    这整个晚上都让我发疯 基本上 我需要在清理值后在多维数组中设置一个特定值 然后在验证值后再次设置 也许 取决于验证 如果验证失败 则需要将值设置为空字符串 假设我有这个帖子数组 data should be int yjd 清理该值后fil