2016-11-28 1 views
0

これはPHPで爆発値を使用して配列変数を割り当てる方法は?

"general": { 
    "option_name" : "option_name", 
    "filter_name" : "filter name" 
} 

私sample.jsonファイルであると私はここで私はアレイ

[0] => general 
[1] => filter_name 

あるべき割り当てたいキー

$string = "general.filter_name"; 

$updateContent = "new filtername"; 

$langArray = explode('.',$string); 

print_r($langArray); 

/*Array 
(
[0] => general 
[1] => filter_name 
) */ 


$file='assets/sample.json'; 

$jsonString = file_get_contents($file); 
$data = json_decode($jsonString, true); 

**$data['general']['filter_name'] = $updateContent; ** 


$newJsonString = json_encode($data); 
file_put_contents($file, $newJsonString); 

を使用して値を更新したいです

$data['general']['filter_name'] 

このように配列を定義する方法は?

$json = file_get_contents('assets/sample.json'); 
$json = json_decode($json, true); 

$path = "general.filter_name"; 
$path = explode('.', $path); 

$ref = &$json; 

foreach ($path as $key) { 
    $ref = &$ref[$key]; 
} 

$ref = "new filtername"; 
unset($ref); 

仕組み::おかげ

答えて

1

あなたが参照使用してそれを行うことができます$json['general']['filter_name']の値を取得するために$path項目を$ref = &$json;

  • 反復:

    1. をお使いのアレイの参照を作成します。
      1. 最初の繰り返しで$refは、2回目の反復$ref$json['general']
      2. への参照が$json['general']['filter_name']への参照になりますでしょう - それは我々が割り当てると
    2. $ref = "new filtername";あなたは$json['general']['filter_name'] = "new filtername";
    3. を割り当てているが基準を削除することを忘れないでくださいしたい正確に何unset($ref);それを行わずに$refを変更して変更する可能性があります。$json['general']['filter_name']
  • 関連する問題