我正在尝试用PHP中的多个数组创建一个JSON对象。
$a = array("Wis","Dex","Cha" );
$b = array(1,2,2);
$c = array("Perception","Stealth","Intimidation");
$d = array(8,5,1);
我正试图从中获取一堆JSON,例如:
{ $c[0]:$d[0], "Stat":$a[0], "Multiplier:$b[0] };
并获取所有这些JSON并将其转换为字符串。但我一直试图理解json_encode是如何工作的,但我无法弄明白。我希望有人能够向我解释如何操纵这些值以将其转换为JSON。
答案 0 :(得分:0)
您可以使用for循环手动创建所需的数组,然后在其上使用json_encode
。您必须确保四个数组的大小相同。
$n = count($a);
$combined = array();
for ($i = 0; $i < $n; $i++) {
$entry = array();
$entry[$c[$i]] = $d[$i];
$entry["Stat"] = $a[$i];
$entry["Multiplier"] = $b[$i];
$combined[$i] = $entry;
}
$json = json_encode(combined);
答案 1 :(得分:0)
您希望数据如何发布?作为JSON对象字符串的JSON数组,还是单独的每个字符串?
<?php
$a = array("Wis","Dex","Cha" );
$b = array(1,2,2);
$c = array("Perception","Stealth","Intimidation");
$d = array(8,5,1);
$data[$c[0]]=$d[0];
$data["Stat"]=$a[0];
$data["Multiplier"]=$b[0];
print(json_encode($data));
?>
会给你类似的东西
{"Perception":8,"Stat":"Wis","Multiplier":1}
如果你想要一个这样的数组,那么一些改变:
<?php
$a = array("Wis","Dex","Cha" );
$b = array(1,2,2);
$c = array("Perception","Stealth","Intimidation");
$d = array(8,5,1);
for($i=0;$i<count($a);$i++){
$data[$i][$c[$i]]=$d[$i];
$data[$i]["Stat"]=$a[$i];
$data[$i]["Multiplier"]=$b[$i];
}
print(json_encode($data));
?>
这会给你类似的东西
[{"Perception":8,"Stat":"Wis","Multiplier":1},
{"Stealth":5,"Stat":"Dex","Multiplier":2},
{"Intimidation":1,"Stat":"Cha","Multiplier":2}]