如何使用PHP在数组列表中添加重复相同的值

时间:2018-05-03 07:54:24

标签: php json

我需要在使用PHP的不同密钥的相应json数组列表中再次重复相同的值。我在下面解释我的代码。

$output=array(array("0"=>1,"name"=>"raj","regno"=>12),array("0"=>2,"name"=>"raja","regno"=>15));
//echo json_encode($output);

上面的数组给出了以下输出。

[{"0":1,"name":"raj","regno":12},{"0":2,"name":"raja","regno":15}]

这里我需要使用不同的键再次重复相同的值,并且预期的输出格式如下所示。

预期产出:

[
    {"0":1,"1":"raj","name":"raj","2":12,"regno":12},
    {"0":2,"1":"raja","name":"raja","2":15,"regno":15}
]

请帮我解决这个问题。

2 个答案:

答案 0 :(得分:1)

您可以使用array_values()+ operator来合并基于索引的数组和基于键的数组。这可以在array_map()内完成:

$output = array(
    array("0"=>1,"name"=>"raj","regno"=>12),
    array("0"=>2,"name"=>"raja","regno"=>15)
);

$output = array_map(function($data) {
    return $data + array_values($data);
}, $output);

echo json_encode($output);

输出(重新格式化):

[
    {"0": 1, "name": "raj", "regno": 12, "1": "raj", "2": 12},
    {"0": 2, "name": "raja", "regno": 15, "1": "raja", "2": 15}
]

答案 1 :(得分:0)

json_encode有一个人类阅读选项:JSON_PRETTY_PRINT

请参阅doc:http://php.net/manual/en/function.json-encode.php

您将获得所需的输出