2010-12-16 6 views
0

私はいくつかの配列を持つPHPファイルを持っています。これらの配列の1つを変更してファイルに書き戻したいと思います。例えば、ファイルtest.phpをは内容を持っていると言う -ファイル内の配列値を変更する

<?php 
$arr1 = array("a"=>"b", "c" =>"d", "e"=>"f"); 
$arr2 = array("a2" => "b2", "c2" => "d2"); 

私は配列は、あらかじめファイル内に存在しているかわからない - それtest.phpを、今のように見えるよう

<?php 
$arr1 = array("a"=>"b", "c" =>"d"); 
$arr2 = array("a2" => "b2", "c2" => "d2"); 

iは$ ARR1を変更したいです。

編集:配列に変数を追加するのではなく、別のキー値のペアのみを追加しています。問題は、配列が配列のファイルの一部であることです。その配列については、私が常に認識しているわけではありません。ファイルに配列が1つしかない場合はこれを達成できますが、複数の配列でこれを行うことが可能かどうかを知りたい場合

+0

あなたの質問からあなたの文脈を理解するのは難しいです。最初の配列の最後に未知の変数を追加しようとしていますか?または、2番目の変更方法に基づいて最初の配列の内容を判断しようとしていますか?スクリプトの目標の文脈が助けになるならば、達成しようとしていることを明確にしてください。 – DeaconDesperado

+0

私はあなたの質問を理解していません。私の質問から、私は2番目の配列に値(変数ではない)を追加しようとしていることは明らかです。私はここに混乱やdownvoteの理由が表示されません。 – pinaki

+0

ちょうど明確にするために、私はdownvoteを発行していない。私はこの他のファイルにどのようにアクセスしていたのか、あなたの質問からはわかりませんでした。それが含まれているのか、それとも遠隔から読み込まれていますか? – DeaconDesperado

答えて

1

ファンクション内にいる場合(つまり、グローバルスコープ内にいない場合)get_defined_vars()の方がよいかもしれません。クローズされたスコープにファイルを含めるだけで、ファイル内のすべての変数名を取得するためのキーを返す必要があります。

+0

まさに私が必要な.. ..ありがとう.. – pinaki

2

あなたは

$arr = array('arr1' => array("a"=>"b", "c" =>"d"), 'arr2' =>("a2" => "b2", "c2" => "d2")); 

serializeそれ

$serArr = serialize($arr); 
//write to file here 

ファイルを読んだとき、あなたはそれで「グローバル」配列はサブだ持っているので、ちょうどその内容をunserialize別の「グローバル」の配列を導入する可能性必要な値を変更し、シリアル化して書き戻します。

大きな配列を書き込むときにこれが大きなパフォーマンス上の問題になる可能性があることに注意してください。

+0

+1。方法は良いですが、問題は、ファイルの内容を変更して別の配列を追加することができないことです(それ以外の場合は、配列自体に値を追加する作業が非常に少なくなります)。私はファイルからすべての配列の値を取得し、それらを変更し、それらを書き戻すことができる方法はありますか? – pinaki

+0

「ファイルの内容を変更して別の配列を追加することはできません」ということはどういう意味ですか? – DrColossos

+0

「ファイル内の値を変更する」というのは、要求が完了してスクリプトが実行された後に新しい値をファイルに保存するということであれば、フラット・テキスト・ファイルDrColossosが記述した方法、または後で取得するためのデータベースへのアクセスを提供します。これはファイルを変更することで意味しますか?実際にtest.phpに反映されている物理的な値を変更したいのですが、コード内で永久に書き出して保存していますか? – DeaconDesperado

0
<?php 
$arr1 = array("a"=>"b", "c" =>"d"); 
$newarr=array("d"=>"f"); 
$arr1+=$newarr; 

それは5年経ちましたが、私はそのための簡単な方法を与えたいと思います。

関連する問題