作成日:2021-02-15, 更新日:2021-02-15
基本
eval()関数で文字列を評価すれば良いらしい
// 下準備 $seed = array( 'hoge1' => 'val1', 'hoge2' => 'val2', ); $conv_seed = var_export($seed, true); // var_export()した後の文字列を元に戻す eval('$restore = ' . $conv_seed . ';'); // var_export($restore); // ←元の配列になっている
経緯
下記のような状況になってしまった
1.jsonがある
2.json_decode()を出力した結果を見ていた
3.一部改修したくなった
4.しかも、元のソースはいじらずにjsonだけ修正したい
5.でも、良い感じに修正するには面倒
6.json_decode()を出力した結果から配列に戻せるなら良いなぁ・・・
流れ
1.jsonを展開して出力
2.好きに修正する
3.「2」を読み込んで配列に変換してからjsonに戻す
1.jsonを展開して出力
▼ひとまずどっかでjson_decode()を出力して、好きに修正した文字列を用意
$json = 〇〇〇〇〇; var_export(json_decode($json, true));
▼こんな感じの出力結果
array ( 'hoge' => array ( 0 => array ( 'foo' => '〇〇〇〇', ), ), )
2.好きに修正する
いらない何かを消したり、追加したりする。
3.「2」を読み込んで配列に変換してからjsonに戻す
$seed = 〇〇〇〇; eval('$conv_ary = ' . $seed . ';'); $json = json_encode($conv_ary);