我正在使用从客户端通过JSON
文件提供的CSV
数据集。我已经将CSV
处理成JSON
格式。
我得到以下结果(出于可读性考虑,数据集从1304减少到2)
"1": {
"title": "Abercarn RFC",
"address": "High Street, Abercarn, Newport, Gwent",
"postcode": "NP11 5GQ",
"category": "Club",
"website": "http://abercarn.rfc.wales",
},
"2": {
"title": "Abercarn RFC",
"address": "High Street, Abercarn, Newport, Gwent",
"postcode": "NP11 5GQ",
"category": "Seniors",
"website": "http://abercarn.rfc.wales",
}
我希望能够遍历我的数组(在{{1}之前)并合并这些对象,但同时将两个json_encode($array)
的值保留两者到CSV列表中,因此在这种情况下,理想的输出将是
category
我很高兴简单地合并所有其他字段,因为它们在数据集中始终相同。
答案 0 :(得分:2)
您可以通过简单的循环来做到这一点(我使用title
来定义元素之间的相似性,但是您可以更改它):
$arr = array(["title" => "Abercarn RFC", "category"=> "Club"], ["title" => "other title", "category"=> "BlaBla"], ["title" => "Abercarn RFC", "category"=> "Seniors"]);
$res = array();
foreach($arr as $e) {
if (isset($res[$e["title"]]))
$res[$e["title"]]["category"] .= ", " . $e["category"];
else $res[$e["title"]] = $e;
}
如果要删除阵列键,可以使用array_values
。
$res
将成为您的愿望输出。