1

私は多次元配列を持っていますが、現在はページに配列を印刷するだけです。ユーザーが送信したときに、選択したチェックボックスの情報を格納するフラット テキスト ファイルに保存できるようにしたいと考えています。全部で6日あります。

4

3 に答える 3

12

私は単にこれを行うだろう:

<?php
    if ($_POST)
    {//always check, to avoid noticed
        file_put_contents('theFilenameToWriteTo.json', json_encode($_POST));
    }
?>

の利点はjson_encode、多かれ少なかれ標準であることです。私が知っているすべての言語は、この形式を解析できます。node.js を使用している場合、データ、Java を読み取ることができますか? JSON-javaはあなたのためにあります。パイソン?import json、地獄、C ++ライブラリでさえ簡単に見つけることができます。
そのデータを PHP で再利用するには:

$oldPost = json_decode(file_get_contents('theFileNameToRead.json'));
//$oldPost will be an instance of stdClass (an object)
//to get an assoc-array:
$oldPostArray = json_decode(file_get_contents('sameFile.json'), true);

他にも次のオプションがあります: serializeand write、unserializeon read が続きます。
その配列を既存の PHP コードにコピーして貼り付けることができるようにする場合はvar_export

file_put_contents('theArray.txt', var_export($_POST, true));

次にファイルを開くと、手動で記述されたかのように配列が含まれます。

array (
  0 => 1,
  1 => 2,
  2 => 
  array (
    0 => 'a',
    1 => 'b',
    2 => 'c',
  ),
)

Carlos Campderrós が指摘したように、 によって生成された文字列を含めることもできますvar_exportvar_exportただし、循環参照を処理しないことに注意することが重要ですが、$_POST配列を使用している
ため、ここでは問題ではありません。要約すると、便利な関数のリスト:

于 2013-08-02T11:50:43.657 に答える
1

あなたは使用することができます

print_r($multiArray,true)

true は、印刷ではなく出力をキャプチャすることを意味します。

配列 (PHP 5.4)

$multiArray = [
        0 => [ 'a' => 'b'],
        1 => [ 'c' => 'd', 
               'e' => [
                   'f' => 'g',
                   'h' => 'i'
               ]
        ],
];

PHP

$file = 'array.txt';

$fh = fopen($file, 'w') or die("can't open file");  

fwrite($fh, print_r($multiArray,true));

fclose($fh);

または、後で配列を使用する場合は、serialize() と unserialize() を使用できます。

fwrite($fh, serialize($multiArray) );
于 2013-08-02T12:13:21.177 に答える