【问题标题】:Parse a multidimensional array from .ini file从 .ini 文件解析多维数组
【发布时间】:2021-09-18 10:16:17
【问题描述】:

我想知道是否有任何方法(在 .ini 文件中)实现某些东西,当 parse_ini_file()(在 php 中)解析时会创建一个多维数组,而不仅仅是一个关联数组?

我一直在搜索,但结果是空的,所以我想知道这里是否有人知道是否允许这样的事情。

例子:

file.ini(半 sudo 代码):

input = input1 = ('Hello world this is test #1')
input = input2 = ('Hello world this is test #2')

code.php:

$array = parse_ini_file("file.ini", true);
print_r($array);

预期输出:

Array
(
    [input] => Array
        (
            [input1] => Hello world this is test #1
            [input2] => Hello world this is test #2
        )

)

【问题讨论】:

  • 为什么不直接使用 JSON?
  • @ADyson 是的,这就是我目前正在做的事情,但我喜欢.ini 文件的简单性,所以想看看是否有办法在使用它时获取多维数组。
  • 你觉得 JSON 很复杂?但是您正在尝试处理一组更复杂的数据,因此可以轻松容纳它的存储格式更有意义。恕我直言,您下面答案中的 ini 格式更难阅读(我的意思是人类)。但很高兴你找到了答案。
  • 这就是为什么我将它用于一小部分简单的数据,以便可以轻松地对其进行编辑、添加和/或删除。与 ini 不同,JSON 对格式的要求更严格,这让我在需要时进入和编辑这个过程有点乏味。对于更大的数据集当然 JSON 是更好的解决方案,只是不适合偶尔更改的 3 到 4 个变量。

标签: php ini


【解决方案1】:

似乎在找到更好的方式来表达我的问题后,我找到了自己的答案。

.ini 文件可以包含括在方括号 ([]) 中的部分,例如:

[input]
  input1 = ('Hello world this is test #1');
  input2 = ('Hello world this is test #2');

这正是我一直在寻找的,因为这些部分(在解析时)将它变成了一个多维数组:

Array
(
    [input] => Array
        (
            [input1] => Hello world this is test #1
            [input2] => Hello world this is test #2
        )

)

在发布这个问题之前,肯定应该等待更长时间并进行更多研究,但我会将其留给可能与我最初遇到相同问题的其他人。

【讨论】:

    猜你喜欢
    • 2017-07-04
    • 2011-11-20
    • 2012-11-18
    • 1970-01-01
    • 2013-04-26
    • 2019-03-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多