YAML を解析するには、利用可能なさまざまな PHP パーサーを使用できます。Online YAML Parserを使用して YAML を解析し、JSON で文字列を出力しました。最後に、JSON をデコードすることで、必要な配列値にアクセスできます。
* 例として、ストリングを短くカットしていることに注意してください *
$arr='{
"Residences": {
"WorkArea": {"BlackList": {"Type": "BLACKLIST", "ItemList": []},
"EnterMessage": "Welcome %player to %residence, owned by %owner.",
"Areas": {
"main": {
"Y1": 217,
"X1": -6301,
"X2": -6306,
"Y2": 205,
"Z1": 3001,
"Z2": 2981
}
},
"Permissions": {"Owner": "cal9897","World": "VivaWorld"}
},
"caylyn55": {
"BlackList": {
"Type": "BLACKLIST",
"ItemList": []
},
"EnterMessage": "Welcome %player to %residence, owned by %owner.",
"StoredMoney": 0,
"IgnoreList": {
"Type": "IGNORELIST",
"ItemList": []
},
"LeaveMessage": "Now leaving %residence.",
"Subzones": {},
"Areas": {
"main": {
"Y1": 67,
"X1": 1220,
"X2": 1210,
"Y2": 64,
"Z1": 369,
"Z2": 360
}
},
"Permissions": {
"Owner": "caylyn55",
"PlayerFlags": {},
"GroupFlags": {},
"World": "VivaWorld"
}
}
},
"Version": 1,
"Seed": 1337068141
}';
JSON のデコード
$a= json_decode($arr,true);
最初のエリア値が通り抜ける
$a['Residences']['WorkArea']['Areas']['main']['Y1'];
および 2 番目の面積値
$a['Residences']['caylyn55']['Areas']['main']['Y1'];
['WorkArea'] AND ['caylyn55'] dynamic の場合、このコードを使用できます
$b=array_values($a);
foreach($b as $values)
{
if(is_array($values)) {
foreach(array_keys($values) as $c){
echo $a['Residences'][$c]['Areas']['main']['Y1'];
}
}
}