

下記の配列を.txt出力内容のように出力したいのですが、  
以下の書き方ですとどうしてもarrayの文字が一緒に出力されてしまいます。  
書き方やミスなどご指摘いただけると助かりますので教えていただけますでしょうか。  
よろしくお願いいたします。

[code]

    $array[] = 'header';
    $array[] = [0]'str1'
               [1]'str2'
               [2]'str3'
    $array[] = 'footer';
    
    file_put_contents ( "$url" , $array, FILE_APPEND );
    
[/code]

-.txt出力内容------------  
header  
str1  
str2  
str3  
footer


CC BY-SA 3.0
2017-11-18T18:01:31.990
39682
2017-11-20T00:53:38.470
26257
question
php
配列のテキスト出力を行いたいです。


ご質問にあるコードをそのまま実行するとシンタックス（構文）エラーが発生しています。発生している箇所は以下です。

[code]

    $array[] = [0]'str1'
           [1]'str2'
           [2]'str3'
    
[/code]

まず、PHP文の終わりにはセミコロンが必要になります。  
また、配列に何かを割り当てる場合は

[code]

    $array[0] = 'str1';
    
[/code]

といった書き方になります。  
この場合配列$arrayのインデックス[0]に'str1'という文字列を割り当てたということになります。  
従って、先ほどのエラーが発生していた例を修正すると、

[code]

    $array[0] = 'str1';
    $array[1] = 'str2';
    $array[2] = 'str3';
    
[/code]

このように書き直す必要があります。  
今回は、文字列を順番に追加していくだけなのでさらに簡略化することができます。

[code]

    $array[] = "header"; //index0
    $array[] = "str1";   //index1
    $array[] = "str2";   //index2
    $array[] = "str3";   //index3
    $array[] = "footer"; //index4
    
    file_put_contents ( '/any/dir/hoge.txt' , $array, FILE_APPEND );
    
[/code]

$array[]の括弧[]は、単純に「次のインデックスに追加する」といった意味合いを持ちます。


CC BY-SA 3.0
2017-11-18T22:43:53.753
39684
2017-11-18T22:43:53.753
13097
39682
answer


こんな感じでしょうか？  
joinする改行コードを環境依存にしているので適宜変更してもらえれば…

[code]

    <?php
    $arr = array(
        'header',
        array(
            'str1',
            'str2',
            'str3',
        ),
        'footer',
    );
    
    file_put_contents ( "$url" , join(PHP_EOL, iterator_to_array(new RecursiveIteratorIterator(new RecursiveArrayIterator($arr)), false)), FILE_APPEND );
    
[/code]


CC BY-SA 3.0
2017-11-20T00:53:38.470
39703
2017-11-20T00:53:38.470
39682
answer