0

我如何使用 php 将我拥有的这个元素分离到文件中

例如 :

##cat 1##
**
element 1
element 2
element 3
**

##cat 2##
**
element 1
element 2
element 3
**

##cat 3##
**
element 1
element 2
element 3
**

我在很多时间的 php 手册中看到,我尝试过爆炸等,但没有得到好的结果,有可能使用 php 发送简单循环运行所有这些内容,并在每种情况下将内容分隔为 ## 或 ** 并显示每个元素分离?

我尝试这样做但效果不佳,因为我不能这样做并尝试多次使用 foreach ,explode ,bucle for 等,并且总是得到相同的结果并且没有显示所有元素

谢谢您的帮助

4

1 回答 1

0

我不确定我是否理解你的问题。如果您想接受上面的输入并生成以下内容:

Array
(
    [##cat 1##] => Array
        (
            [0] => element 1
            [1] => element 2
            [2] => element 3
        )

    [##cat 2##] => Array
        (
            [0] => element 1
            [1] => element 2
            [2] => element 3
        )

    [##cat 3##] => Array
        (
            [0] => element 1
            [1] => element 2
            [2] => element 3
        )
)

尝试这个:

$input_text =<<<INPUT_TEXT
##cat 1##
**
element 1
element 2
element 3
**

##cat 2##
**
element 1
element 2
element 3
**

##cat 3##
**
element 1
element 2
element 3
**
INPUT_TEXT;

$output = array();
$current = NULL;
foreach( explode( "\n", $input_text ) as $line )
{
    $line = trim( $line );
    if( empty( $line ) )
    {
        continue;
    }
    if( substr( $line, 0, 2 ) == '##' )
    {
        $current = trim( $line );
        continue;
    }
    if( substr( $line, 0, 2 ) == '**' )
    {
        continue;
    }
    if( !empty( $current ) )
    {
        $output[$current][] = $line;
    }
}
print_r( $output );
于 2013-03-11T03:37:25.267 回答