PHP 中的关联数组中有类似 keypath 的东西吗?

2023-12-05

我想剖析这样的数组:

[
    "ID",
    "UUID",
    "pushNotifications.sent",
    "campaigns.boundDate",
    "campaigns.endDate",
    "campaigns.pushMessages.sentDate",
    "pushNotifications.tapped"
]

改成这样的格式:

{
    "ID" : 1,
    "UUID" : 1,
    "pushNotifications" : 
        {
            "sent" : 1,
            "tapped" : 1
        },
    "campaigns" :
        {
            "boundDate" : 1,
            "endDate" : 1,
            "pushMessages" :
                {
                    "endDate" : 1
                }  
        }
}

如果我能够以类似键路径的方式在关联数组上设置一个值,那就太好了:

//To achieve this:
$dissected['campaigns']['pushMessages']['sentDate'] = 1;

//By something like this:
$keypath = 'campaigns.pushMessages.sentDate';
$dissected{$keypath} = 1;

如何在 PHP 中做到这一点?


您可以使用 :

$array = [
        "ID",
        "UUID",
        "pushNotifications.sent",
        "campaigns.boundDate",
        "campaigns.endDate",
        "campaigns.pushMessages.sentDate",
        "pushNotifications.tapped"
];

// Build Data
$data = array();
foreach($array as $v) {
    setValue($data, $v, 1);
}

// Get Value
echo getValue($data, "campaigns.pushMessages.sentDate"); // output 1

使用的功能

function setValue(array &$data, $path, $value) {
    $temp = &$data;
    foreach(explode(".", $path) as $key) {
        $temp = &$temp[$key];
    }
    $temp = $value;
}

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

PHP 中的关联数组中有类似 keypath 的东西吗? 的相关文章

  • php-curl 不支持 url 中的 utf-8

    我正在尝试将 http 请求从我的服务器发送到 php 中的另一台服务器 例如 我发送请求的 URL 包含一些 utf8 字符http www aparat com etc api videoBySearch text http www a
  • DOMDocument 对我的字符串做了什么?

    dom new DOMDocument 1 0 UTF 8 str p Hello p var dump mb detect encoding str dom gt loadHTML str var dump dom gt saveHTML
  • 在Python中使用None作为字典键是否合理?

    似乎没有一个可以用作字典键 但我想知道这是否会导致以后出现麻烦 例如 这有效 gt gt gt x a 1 b 2 None 3 gt gt gt x a 1 None 3 b 2 gt gt gt x None 3 我正在使用的实际数据是
  • ruby 中可以做动态变量吗? [复制]

    这个问题在这里已经有答案了 我可以通过其他方式实现这种动态性质 但这引起了我的好奇 Ruby 中有类似的机制吗 varname hello varname world echo hello Output world 您可以使用以下方法实现类
  • LDAP 过滤器用于区分名称

    我使用以下代码成功查询 Active Directory 中的用户 filter objectCategory person samaccountname someusername fields array samaccountname m
  • 按带宽限制成员资格

    我刚刚将 Codeigniter 应用程序部署到 Amazon EC2 使用 S3 作为媒体 使用 RDS 作为 MySQL 我需要根据使用的带宽量限制用户帐户访问 帐户将基于带宽 例如基本帐户 x 每月最多 20GB 等 但是我不知道最好
  • 连接以逗号分隔的字符串,但如果字符串为空,则逗号不应出现在开头[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 这个问题是由拼写错误或无法再重现的问题引起的 虽然类似的问题可能是on topic help on topic在这里 这个问题的解决方式不
  • 有没有办法清除所有会话中的一些会话数据?

    一般来说 我有以下场景 从数据库中获取产品及其相关数据 将获取的数据转换为 php product 对象 在会话中缓存产品对象 缓存是只读的 即客户在网站上查看产品 但也有类似的电话getProductIdsByCategory categ
  • 正则表达式匹配带或不带特殊/重音字符的字符串?

    是否有正则表达式可以匹配包含或不包含特殊字符的特定字符串 可以这么说 特殊字符不敏感 Like c ra将匹配cera 反之亦然 有任何想法吗 编辑 我想匹配带有或不带有特殊 重音字符的特定字符串 不仅仅是任何字符串 字符 测试示例 cli
  • 电子邮件标题中的特殊字符是什么以及何时使用引号?

    我正在尝试使用 PHP 发送和阅读电子邮件 到目前为止 我发现我必须使用该函数对特殊字符进行编码mb encode mimeheader 但我不必对空格进行编码 我还发现地址字段中的括号不起作用 读取带有括号的标题时 PHP 的 imap
  • 数据库字段中的空白不会被trim()删除

    我在 MySQL 的文本字段的段落开头有一些空格 Using trim var text field 在 PHP 中或TRIM text field MySQL 中的语句绝对不执行任何操作 这个空白可能是什么以及如何通过代码删除它 如果我进
  • 将 PHP 错误存储在日志文件中

    我想将 php 生成的任何错误和警告存储在日志文件中 但是still也以正常方式显示它们 回显 Thanks 您可以定义自己的函数并描述如何处理错误 http www php net manual en function set error
  • 使用类型映射选项的 PHP SoapClient 示例

    我在 PHP 的 SoapClient 中的命名空间使用方面遇到了一个小问题 从文档中我相信构造函数的类型映射选项将解决我的问题 http php net manual en soapclient soapclient php http p
  • PHP 性能有多好? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 这是我最近看到的一篇文章的后续内容 该文章表明 PHP 性能很差 PHP 始终是瓶颈 我的服务器群 让我向您展示 PHP 整体性能 http t
  • 如何在服务器(无 GUI)上呈现网页以进行打印?

    我正在尝试使用 PHP 脚本将页面实用地打印到办公室打印机 这是我到目前为止所得到的 我在服务器上安装了一台打印机 我可以通过命令行的打印命令使用 PHP 向其发送作业 我还可以使用 PHP 脚本编写纯文本文件 然后将它们添加到打印提示中
  • WooCommerce 添加到购物车后停止重定向

    我希望在用户单击 添加到购物车 按钮后完全删除任何重定向 实际上我没有使用产品页面 我使用一个带有产品链接的简单按钮 如下所示 add to cart 492 我的用户将单击我页面上的多个 添加到购物车 按钮 因此在单击第一个按钮后他无法重
  • Symfony2 - Doctrine - 更新后没有更改集

    因此 当实体的某个值发生更改时 我会发送电子邮件 我只想在更新后发送电子邮件 以防更新因任何原因失败 所以在更新前我可以这样做 public function preUpdate LifecycleEventArgs args if arg
  • (mysql, php) 如何在插入数据之前获取auto_increment字段值?

    我正在将图像文件上传到存储服务器 在上传之前 我应该编写文件名 其中包含自动增量值 例如 12345 filename jpg 在插入数据库之前如何获取自动增量值 我只看到一种解决方案 插入空行 获取其自增值 删除这一行 使用 p 1 中的
  • 如何在 PHP 中验证电子邮件? [复制]

    这个问题在这里已经有答案了 如何使用 php5 验证输入值是有效的电子邮件地址 现在我正在使用这段代码 function isValidEmail email pattern a z0 9 a z0 9 a z0 9 a z0 9 a z
  • 手动检查 php 中的 jpeg 文件结尾标记 ffd9 (?) 以捕获截断错误

    基本上是尝试从集合中删除损坏的 过早结束的 jpeg 文件 我认为如果文件末尾标记不存在 则意味着图像被截断 因此我认为它对我的目的无效 这是检查声音的方法吗 如果是的话 我有什么想法可以在 php 中实现这个吗 cheers 尝试这个 j

随机推荐

  • 为什么我的粘性页脚粘不住?

    我浏览了与 粘性页脚 相关的所有问题 但没有任何帮助 因为我的 content div 并不总是有足够的内容将页脚推到底部 这是我用来实现此目的的代码 但显然我做错了什么 html body div container height 100
  • 如何在多列上查询 dgrid

    是否可以创建一个 dgrid 查询来在多个列上搜索正则表达式字符串 通常 语法指定 column1 foo column2 foo 但这将查找 column1 和 column2 均为 foo 的行 但我想对两列使用相同的搜索字符串 这可能
  • 有没有更好的方法来调整打印整数的缓冲区大小?

    我想创建一个缓冲区sprintfing 一个整数 在本例中是unsigned int 一个简单且误导性的方法是 char buf 11 sprintf buf u x 如果我们知道这一点 这会很有用unsigned int至多是33位宽 但
  • 从 Gradle 将 RPM 上传到 Artifactory

    如何使用 Gradle 将 RPM 文件上传到 Artifactory Gradle 总是使用 maven 风格的直接布局上传文件 这对于 YUM 存储库来说是不合适的 这里的问题是 Gradle 坚持以 maven 风格的目录格式上传所有
  • 如何从Python程序调用存储在另一个文件中的函数?

    如果我有一个包含 python 函数定义的文本文件 如何从另一个 Python 程序调用该函数 Ps 该函数将在执行调用的Python程序中定义 可以采取的方法 将 python 函数视为一个模块并调用它 这里的限制是我必须将 python
  • 将设置保留在分支中

    我开始使用git进行软件开发 我在github上有一个项目 该项目还涉及一些存储在专用设置文件中的用户设置 在 github 上 设置应该为空 像这样 Settings Your name name Your email adress em
  • UnicodeDecodeError: 'utf-8' 编解码器无法解码位置 0 中的字节 0xff: 读取 csv 文件时 python 中的无效起始字节错误

    StopWords pd read csv stopwords csv encoding UTF 8 quotechar names StopWords 我正在尝试读取包含波斯语文本的 CSV 文件 这是我收到的错误 UnicodeDeco
  • Laravel 中的双向 WebSocket?

    这里有人熟悉 laravel 中的双向 WebSockets 吗 请注意 我不是在谈论 Pusher Echo Pusher echo 无法向服务器发出请求 我有过express js 的经验 其中套接字可以在服务器端监听 我正在寻找类似的
  • 可以在桌面上登录但在移动设备上不行吗?

    因此 我使用 php login minimal 来处理我几乎完整的网站上的登录 登录系统在桌面上完美运行 但在平板电脑或移动设备上 它的表现就好像它正在工作并让我登录 但最终我最终在同一页面上要求我登录 我不明白为什么它可以在桌面上运行但
  • ios 对强/弱引用感到困惑

    我浏览了有关强 弱引用的问题 并理解了使用弱引用 父子关系 的原因 但是 我对创建父子关系的特定场景感到困惑 例如 向 UIView 对象添加子视图是创建父 子关系的示例吗 什么是 到目前为止 我在项目中使用了strong 没有使用weak
  • 使用 php 和 html 从我的服务器上的目录填充“选择列表”

    是否可以 我假设不能 从我网站上的文件 例如图像文件夹中 填充下拉列表 以html形式
  • 在数据表子表单中使用级联组合框

    在 Access 2010 中 我有表Task and Action通过表具有多对多关系ActionTask 在表格中Task 我想为所有的子表单Action与当前任务相关的ActionTask联结表 这本身就是我能做到的 诀窍是Actio
  • Swift 2.2 中 C 风格循环的替代

    Swift 2 2 弃用了 C 风格的循环 但在某些情况下 新的范围运算符的工作方式并不相同 for var i 0 i lt 1 i and for i in 0 lt 1 后一个将在运行时失败 我可以用一个包裹循环if 但是有点乱 有时
  • JavaScript:突出显示/选择鼠标指针下的单词

    当鼠标指针悬停在某个单词上时 如何使用 JavaScript 突出显示 css 背景颜色 单词 应该可以通过单击它并将其保存在变量中来选择它 var words yourTextContainer text split yourTextCo
  • 将 CSS 应用到 Google 可视化表

    我在 Google Visualization 中创建了一个表 它使用以下代码
  • 控制对可供下载的文件的访问

    我有一个文件夹 其中包含我的 ZF 应用程序可以将其输出给登录用户的上传文档 我希望他们能够使用类似的链接http server documents filename pdf并下载文件 但我想要一个控制器DocumentsControlle
  • 对工作日文本进行排序

    我有清单 Tue Wed Mon Thu Fri 作为列表 我想将其设为 Mon Tue Wed Thu Fri 这个该如何排序呢 效率不是很高 但是如果你有一个它们应该排列的顺序列表 gt gt gt m Mon Tue Wed Thu
  • 底图形状文件可视化

    使用 Basemap 创建一些地图后 我变得热情起来 我想集成shapefile信息 比如说一个多边形 但是有一些问题 我在这里下载了巴伐利亚村庄的边界 https www arcgis com home item html id b752
  • 当对数组调用此 .pop 方法时,为什么我会得到意外的 .length 结果

    我是 JS 新手 所以请耐心等待 当我试图打电话给 pop数组上的方法定义为secretMessage 它有 24 个元素 我使用了语法secretMessage secretMessage pop 我相信这是错误的 呼叫 length m
  • PHP 中的关联数组中有类似 keypath 的东西吗?

    我想剖析这样的数组 ID UUID pushNotifications sent campaigns boundDate campaigns endDate campaigns pushMessages sentDate pushNotif