”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 如何使用数组函数将字符串转换为关联数组?

如何使用数组函数将字符串转换为关联数组?

发布于2024-11-07
浏览:824

How to Convert a String to an Associative Array Using Array Functions?

使用数组函数将字符串转换为关联数组

在 PHP 中,经常需要将包含键值对的字符串转换为关联数组关联数组。考虑像“1-350,9-390.99”这样的字符串,其中每个元素由连字符和逗号分隔。目标是创建一个关联数组,其中每个元素中的第一个数字成为键,第二个数字成为值。

可以使用 PHP 的内置数组函数有效地实现此转换。第一步涉及使用 preg_split("/[-,]/", $input) 将字符串拆分为单独的数组,该数组用连字符和逗号分隔数字。结果是一个子数组列表,每个子数组包含一个键和一个值。

接下来,我们使用 array_chunk 将这些子数组分成两个块,确保一个元素保存键,另一个元素保存值。最后,使用 array_column 将键和值提取到单独的数组中。在这些数组上使用 array_combine 会生成所需的关联数组。

代码片段:

$input  = '1-350,9-390.99';

$chunks = array_chunk(preg_split('/[-,]/', $input), 2);
$result = array_combine(array_column($chunks, 0), array_column($chunks, 1));

输出:

Array
(
    [1] => 350
    [9] => 390.99
)

该方法有效地将字符串转换为关联数组,而无需借助循环,展示了 PHP 数组函数的强大功能。

版本声明 本文转载于:1729549336如有侵犯,请联系[email protected]删除
最新教程 更多>
  • 如何使用不同数量列的联合数据库表?
    如何使用不同数量列的联合数据库表?
    合并列数不同的表 当尝试合并列数不同的数据库表时,可能会遇到挑战。一种直接的方法是在列数较少的表中,为缺失的列追加空值。 例如,考虑两个表,表 A 和表 B,其中表 A 的列数多于表 B。为了合并这些表,同时处理表 B 中缺失的列,请按照以下步骤操作: 确定表 B 中缺失的列,并将它们添加到表的末...
    编程 发布于2025-04-30
  • 为什么HTML无法打印页码及解决方案
    为什么HTML无法打印页码及解决方案
    无法在html页面上打印页码? @page规则在@Media内部和外部都无济于事。 HTML:Customization:@page { margin: 10%; @top-center { font-family: sans-serif; font-weight: bo...
    编程 发布于2025-04-30
  • C++20 Consteval函数中模板参数能否依赖于函数参数?
    C++20 Consteval函数中模板参数能否依赖于函数参数?
    [ consteval函数和模板参数依赖于函数参数在C 17中,模板参数不能依赖一个函数参数,因为编译器仍然需要对非contexexpr futcoriations contim at contexpr function进行评估。 compile time。 C 20引入恒定函数,必须在编译时进行...
    编程 发布于2025-04-30
  • 如何避免AngularJS中因URL无效导致的背景图错误?
    如何避免AngularJS中因URL无效导致的背景图错误?
    的背景图像错误在AngularJS中使用无效的URL在AngularJS中的URL中错误,NG-SRC标签可确保具有动态变量的URL在Angular评估它们之前不会引起错误。但是,当使用背景图像设置背景图像时,通常会发生类似的错误:url(...)。发生这种情况,因为Angular不会评估CSS样...
    编程 发布于2025-04-30
  • C#整数转二进制高效方法
    C#整数转二进制高效方法
    C# 中整数到二进制表示的转换 将整数转换为其二进制表示是常见的编程任务。在 C# 中,有多种方法可以执行此转换,包括使用 Convert 类的 ToInt32 和 ToString 方法。 为了演示此过程,让我们解决一个用户遇到的问题,该用户尝试将表示为字符串的整数转换为其二进制表示: Stri...
    编程 发布于2025-04-30
  • 为什么我在Silverlight Linq查询中获得“无法找到查询模式的实现”错误?
    为什么我在Silverlight Linq查询中获得“无法找到查询模式的实现”错误?
    查询模式实现缺失:解决“无法找到”错误在银光应用程序中,尝试使用LINQ建立错误的数据库连接的尝试,无法找到以查询模式的实现。”当省略LINQ名称空间或查询类型缺少IEnumerable 实现时,通常会发生此错误。 解决问题来验证该类型的质量是至关重要的。在此特定实例中,tblpersoon可能需...
    编程 发布于2025-04-30
  • 在Java中使用for-to-loop和迭代器进行收集遍历之间是否存在性能差异?
    在Java中使用for-to-loop和迭代器进行收集遍历之间是否存在性能差异?
    For Each Loop vs. Iterator: Efficiency in Collection TraversalIntroductionWhen traversing a collection in Java, the choice arises between using a for-...
    编程 发布于2025-04-30
  • 如何在鼠标单击时编程选择DIV中的所有文本?
    如何在鼠标单击时编程选择DIV中的所有文本?
    在鼠标上选择div文本单击带有文本内容,用户如何使用单个鼠标单击单击div中的整个文本?这允许用户轻松拖放所选的文本或直接复制它。 在单个鼠标上单击的div元素中选择文本,您可以使用以下Javascript函数: function selecttext(canduterid){ if(do...
    编程 发布于2025-04-30
  • 在PHP中如何高效检测空数组?
    在PHP中如何高效检测空数组?
    在PHP 中检查一个空数组可以通过各种方法在PHP中确定一个空数组。如果需要验证任何数组元素的存在,则PHP的松散键入允许对数组本身进行直接评估:一种更严格的方法涉及使用count()函数: if(count(count($ playerList)=== 0){ //列表为空。 } 对...
    编程 发布于2025-04-30
  • 如何将多种用户类型(学生,老师和管理员)重定向到Firebase应用中的各自活动?
    如何将多种用户类型(学生,老师和管理员)重定向到Firebase应用中的各自活动?
    Red: How to Redirect Multiple User Types to Respective ActivitiesUnderstanding the ProblemIn a Firebase-based voting app with three distinct user type...
    编程 发布于2025-04-30
  • 如何限制动态大小的父元素中元素的滚动范围?
    如何限制动态大小的父元素中元素的滚动范围?
    在交互式接口中实现垂直滚动元素的CSS高度限制,控制元素的滚动行为对于确保用户体验和可访问性是必不可少的。一种这样的方案涉及限制动态大小的父元素中元素的滚动范围。问题:考虑一个布局,其中我们具有与用户垂直滚动一起移动的可滚动地图div,同时与固定的固定sidebar保持一致。但是,地图的滚动无限期...
    编程 发布于2025-04-30
  • 在细胞编辑后,如何维护自定义的JTable细胞渲染?
    在细胞编辑后,如何维护自定义的JTable细胞渲染?
    在JTable中维护jtable单元格渲染后,在JTable中,在JTable中实现自定义单元格渲染和编辑功能可以增强用户体验。但是,至关重要的是要确保即使在编辑操作后也保留所需的格式。在设置用于格式化“价格”列的“价格”列,用户遇到的数字格式丢失的“价格”列的“价格”之后,问题在设置自定义单元格...
    编程 发布于2025-04-30
  • JavaScript中如何动态访问全局变量?
    JavaScript中如何动态访问全局变量?
    在JavaScript 一种方法是使用窗口对象存储和检索变量。通过引用全局范围,可以使用其名称动态访问变量。 //一个脚本 var somevarname_10 = 20; //另一个脚本 window.all_vars = {}; window.all_vars ['somevarnam...
    编程 发布于2025-04-30
  • 如何解决AppEngine中“无法猜测文件类型,使用application/octet-stream...”错误?
    如何解决AppEngine中“无法猜测文件类型,使用application/octet-stream...”错误?
    appEngine静态文件mime type override ,静态文件处理程序有时可以覆盖正确的mime类型,在错误消息中导致错误消息:“无法猜测mimeType for for file for file for [File]。 application/application/octet...
    编程 发布于2025-04-30
  • Excel UDFs能否修改其他单元格?
    Excel UDFs能否修改其他单元格?
    excel udf:克服数组输出中的限制 与普遍的信念相反,可以通过复杂的解决方法来完成这项任务。通过利用Windows计时器和应用程序的组合。对时间计时器,我们可以绕过这些限制。 windows Timer是从UDF内部启动的。但是,其函数仅限于安排应用程序。一次时计时器。 applicat...
    编程 发布于2025-04-30

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3