.json
ファイルを単純な0から作成しようとしています。私はこれを試してみた:再帰的に結合されたphp配列からjsonをエンコードする
[{"TEA":{"country":"Turkey","byteam":"TeamName1"}},{"VIS":{"country":"Germany","byteam":"TeamName2"}}]
私はbegginingでとで[]
の事を好きではない:
$res=mysqli_query($link, "SELECT * FROM Teams");
$i=0;
while ($row =mysqli_fetch_assoc($res)) {
$jshteam[$i]=$row['shteam'];
$jbyteam[$i]=$row['byteam'];
$jcountry[$i]=$row['country'];
$arrteams[$i]= array("".$jshteam[$i].""=>"country"=>"".$jcountry[$i]."","byteam"=>"".$jbyteam[$i].""]);
$i++;
}
$json_data= json_encode(array_merge_recursive($arrteams));
file_put_contents('json/teams.json', $json_data);
これをやって、teams.json
の結果は、(最初の2つの要素)は次のようですストリングの終わり。私はこのコード行を変更する場合は、次のように:
$json_data= json_encode(array_merge_recursive($arrteams[0],$arrteams[1]));
file_put_contents('json/teams.json', $json_data);
を...そして私は私が欲しいものを正確に取得する:
{"TEA":{"country":"Turkey","byteam":"TeamName1"},"VIS":{"country":"Germany","byteam":"TeamName2"}}
問題は、私のように、手動でarray_merge_recursive
を作ることができないということです2番目の形式では、クエリから得られる結果の数がわからないためです。それは次のようになります:
$json_data= json_encode(array_merge_recursive($arrteams[0],$arrteams[1],$arrteams[2]....$arrteams[?]));
どうすればいいですか?
あなたも、 '$のbyteam'と' $のcountry'は必要ありません。 'unset($ row ['jsteam']);'(オプション)を実行してから '$ arr [$ jsteam] = $ row;'を実行できます。それにもかかわらず、良い答えです。 – axiac
ありがとうございます。私が探していたものにもっと近いので、私はDolly Aswinの答えを受け入れます。あなたの答えはまだ非常に良くて便利です。 – Javi