我如何获得这样的JSON?

时间:2019-05-23 11:57:39

标签: php arrays json

我需要获取带有数组的JSON,我该怎么做?

//JSON I need to get

{"keywords":[{"keyword":"kw1", "tags":["sample"]},{"keyword":"kw2", "tags":["sample, sample2"]}]}

//For now, I got this

$keywords = array("kw1", "kw2");

$tags= array("sample", "sample2");

function Keywords($keywords, $tags){

$fields= array("keywords" => $keywords);

$jsondata = json_encode($fields);

print_r($jsondata );

}

//output

{"keywords":["kw1","kw2"]}

我希望这样的输出:

{"keywords":[{"keyword":"kw1", "tags":["sample"]},{"keyword":"kw2", "tags":["sample, sample2"]}]}

1 个答案:

答案 0 :(得分:0)

假设您的示例的第一个元素中的tags也应该是["sample, sample2"](否则,您将必须通过逻辑来解释要实现的结果,如图所示)…< / p>

$keywords = array("kw1", "kw2");
$tags= array("sample", "sample2");

$result = new StdClass;
$result->keywords = [];

foreach($keywords as $keyword) {
  $temp = new StdClass;
  $temp->keyword = $keyword;
  $temp->tags = [];
  foreach($tags as $tag) {
    $temp->tags[] = $tag;
  }
  $result->keywords[] = $temp;
}

echo json_encode($result);

基本上两个在关键字和标签上的嵌套循环,并在一个新的临时对象中创建一个,然后将其附加到结果数组中。