首页 > 解决方案 > PHP 分解多维数组

问题描述

我有多个数组,我试图分解并划分里面的所有信息。出于某种原因,当我这样做时,我会丢失有关主数组的信息。

数组

[0] => Array (
    [0] => 2020-11-01 / 2020-11-30
    [1] => 2020-12-01 / 2020-12-31
    )
[1] => Array (
    [0] => 2020-11-01 / 2020-11-30
    [1] => 2020-12-01 / 2020-12-31
    )

我使用了以下代码:

foreach ($list as $line) {
    foreach ($line as $text) {
        $parts[] = explode(' / ', $text);
    }
}

print_r($parts) 将返回以下内容:

[0] => Array (
    [0] => 2020-11-01
    [1] => 2020-11-30
    )
[1] => Array (
    [0] => 2020-12-01
    [1] => 2020-12-31
    )
[2] => Array (
    [0] => 2020-11-01
    [1] => 2020-11-30
    )
[3] => Array (
    [0] => 2020-12-01
    [1] => 2020-12-31
    )

但不幸的是,这不是我想要的,我需要的是:

[0] => Array (
    [0] => Array (
        [0] => 2020-11-01
        [1] => 2020-11-30
        )
    [1] => Array (
        [0] => 2020-12-01
        [1] => 2020-12-31
        )
    )
[1] => Array (
    [0] => Array (
        [0] => 2020-11-01
        [1] => 2020-11-30
        )
    [1] => Array (
        [0] => 2020-12-01
        [1] => 2020-12-31
        )
    )

我四处寻找,但没有找到一个简单的方法。希望有人能提供帮助。谢谢你!

标签: phparraysmultidimensional-arrayexplode

解决方案


您正在创建一个新数组,而不是写入要爆炸的相同索引,您可以这样做:

$arr = [
    0 => [
        0 => '2020-11-01 / 2020-11-30',
        1 => '2020-12-01 / 2020-12-31',
    ],
    1 => [
        0 => '2020-11-01 / 2020-11-30',
        1 => '2020-12-01 / 2020-12-31',
    ]
];


foreach ($arr as $bulkIndex => $bulks) {
    foreach ($bulks as $lineIndex => $line) {
        $arr[$bulkIndex][$lineIndex] = explode(' / ', $line);
    }
}

推荐阅读