将此数组拆分为2维

use*_*151 1 php arrays

我有一个像这样的数组

  Array
(
[0] => section 1
[1] => xyz
[2] => xyz
[3] => xyz
[4] => ====================================================================================================
[5] => section 2
[6] => abc
[7] => abc
[8] => ====================================================================================================
)
Run Code Online (Sandbox Code Playgroud)

所以我想将这个数组转换成一个二维数组,其中==================作为分隔符

有可能是这样的吗?

Array
(
[0] => Array
    (
        [0] => section 1
        [1] => xyz
        [2] => xyz
        [3] => xyz
    )

[1] => Array
    (
        [0] => section 2
        [1] => abc
        [2] => abc
    )
)
Run Code Online (Sandbox Code Playgroud)

试图使用爆炸方法但似乎没有返回我真正想要的东西

Bli*_*itZ 5

explode()使用字符串.你可以用common foreach-loop 做到这一点:

$result = [];
$index  = 0;

foreach($array as $value){
    if(preg_match('/^\=+$/', $value)){
        $index++;
    } else {
        $result[$index][] = $value;
    }
}

print_r($result);
Run Code Online (Sandbox Code Playgroud)

例:

<?php
header('Content-Type: text/plain; charset=utf-8');

$array = [
    1,
    2,
    'section',
    '=============',
    'test',
    'test2',
    null
];

$result = [];
$index  = 0;

foreach($array as $value){
    if(preg_match('/^\=+$/', $value)){
        $index++;
    } else {
        $result[$index][] = $value;
    }
}

print_r($result);
?>
Run Code Online (Sandbox Code Playgroud)

输出:

Array
(
    [0] => Array
        (
            [0] => 1
            [1] => 2
            [2] => section
        )

    [1] => Array
        (
            [0] => test
            [1] => test2
            [2] => 
        )

)
Run Code Online (Sandbox Code Playgroud)