将多个数组转换为JSON

时间:2018-05-27 15:59:49

标签: php arrays json

我正在尝试用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。

2 个答案:

答案 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}]