如何使用PHP从JSON中删除重复项?
{
"keyword": [{
"consultion": [{
"title": "'u0645'u062f'u0629 'u0627'u0644'u0645'u0631'u0636",
"content": "'u0645'u0627 'u0645'u0639'u062f'u0644 'u0627'u0644'u0628'u0642'u0627'u0621 'u0639'u0644'u0649 'u0642'u064a'u062f 'u0627'u0644'u062d'u064a'u0627'u0629 'u0628'u0639'u062f 'u0627'u0644'u0625'u0635'u0627'u0628'u0629 'u0628'u0645'u0631'u0636 'u0627'u0644'u0623'u0644'u0632'u0647'u0627'u064a'u0645'u0631'u061f",
"id": "1"
}]
}, {
"consultion": [{
"title": " 'u0645'u062a'u0644'u0627'u0632'u0645'u0629 'u063a'u0631'u0648'u0628 'u0627'u0644'u0634'u0645'u0633",
"content": " 'u0645'u0627 '"'u0645'u062a'u0644'u0627'u0632'u0645'u0629 'u063a'u0631'u0648'u0628 'u0627'u0644'u0634'u0645'u0633'" 'u0627'u0644'u062a'u064a 'u0642'u062f 'u064a'u0639'u0627'u0646'u064a 'u0645'u0646'u0647'u0627 'u0645'u0631'u064a'u0636 'u0627'u0644'u0623'u0644'u0632'u0647'u0627'u064a'u0645'u0631'u061f",
"id": "2"
}]
}, {
"consultion": [{
"title": "'u0645'u062f'u0629 'u0627'u0644'u0645'u0631'u0636",
"content": "'u0645'u0627 'u0645'u0639'u062f'u0644 'u0627'u0644'u0628'u0642'u0627'u0621 'u0639'u0644'u0649 'u0642'u064a'u062f 'u0627'u0644'u062d'u064a'u0627'u0629 'u0628'u0639'u062f 'u0627'u0644'u0625'u0635'u0627'u0628'u0629 'u0628'u0645'u0631'u0636 'u0627'u0644'u0623'u0644'u0632'u0647'u0627'u064a'u0645'u0631'u061f",
"id": "1"
}]
}]
}
只需解码JSON字符串,在关键字数组上运行array_unique并编码回JSON:
// Decode JSON into an array
$str = '{"keyword":[{"consultion":[{"title":"'u0645'u062f'u0629 'u0627'u0644'u0645'u0631'u0636","content":"'u0645'u0627 'u0645'u0639'u062f'u0644 'u0627'u0644'u0628'u0642'u0627'u0621 'u0639'u0644'u0649 'u0642'u064a'u062f 'u0627'u0644'u062d'u064a'u0627'u0629 'u0628'u0639'u062f 'u0627'u0644'u0625'u0635'u0627'u0628'u0629 'u0628'u0645'u0631'u0636 'u0627'u0644'u0623'u0644'u0632'u0647'u0627'u064a'u0645'u0631'u061f","id":"1"}]},{"consultion":[{"title":" 'u0645'u062a'u0644'u0627'u0632'u0645'u0629 'u063a'u0631'u0648'u0628 'u0627'u0644'u0634'u0645'u0633","content":" 'u0645'u0627 '"'u0645'u062a'u0644'u0627'u0632'u0645'u0629 'u063a'u0631'u0648'u0628 'u0627'u0644'u0634'u0645'u0633'" 'u0627'u0644'u062a'u064a 'u0642'u062f 'u064a'u0639'u0627'u0646'u064a 'u0645'u0646'u0647'u0627 'u0645'u0631'u064a'u0636 'u0627'u0644'u0623'u0644'u0632'u0647'u0627'u064a'u0645'u0631'u061f","id":"2"}]},{"consultion":[{"title":"'u0645'u062f'u0629 'u0627'u0644'u0645'u0631'u0636","content":"'u0645'u0627 'u0645'u0639'u062f'u0644 'u0627'u0644'u0628'u0642'u0627'u0621 'u0639'u0644'u0649 'u0642'u064a'u062f 'u0627'u0644'u062d'u064a'u0627'u0629 'u0628'u0639'u062f 'u0627'u0644'u0625'u0635'u0627'u0628'u0629 'u0628'u0645'u0631'u0636 'u0627'u0644'u0623'u0644'u0632'u0647'u0627'u064a'u0645'u0631'u061f","id":"1"}]}]}';
$array = json_decode($str, true);
// Remove duplicates from 'keyword' array
$array['keyword'] = array_unique($array['keyword'], SORT_REGULAR);
// Encode back into JSON
$json = json_encode($array, JSON_PRETTY_PRINT);
echo $json;
输出:
{
"keyword": [
{
"consultion": [
{
"title": "'u0645'u062f'u0629 'u0627'u0644'u0645'u0631'u0636",
"content": "'u0645'u0627 'u0645'u0639'u062f'u0644 'u0627'u0644'u0628'u0642'u0627'u0621 'u0639'u0644'u0649 'u0642'u064a'u062f 'u0627'u0644'u062d'u064a'u0627'u0629 'u0628'u0639'u062f 'u0627'u0644'u0625'u0635'u0627'u0628'u0629 'u0628'u0645'u0631'u0636 'u0627'u0644'u0623'u0644'u0632'u0647'u0627'u064a'u0645'u0631'u061f",
"id": "1"
}
]
},
{
"consultion": [
{
"title": " 'u0645'u062a'u0644'u0627'u0632'u0645'u0629 'u063a'u0631'u0648'u0628 'u0627'u0644'u0634'u0645'u0633",
"content": " 'u0645'u0627 '"'u0645'u062a'u0644'u0627'u0632'u0645'u0629 'u063a'u0631'u0648'u0628 'u0627'u0644'u0634'u0645'u0633'" 'u0627'u0644'u062a'u064a 'u0642'u062f 'u064a'u0639'u0627'u0646'u064a 'u0645'u0646'u0647'u0627 'u0645'u0631'u064a'u0636 'u0627'u0644'u0623'u0644'u0632'u0647'u0627'u064a'u0645'u0631'u061f",
"id": "2"
}
]
}
]
}
// copy them into anther array with check if content is taken before or not
$array = json_decode(json, TRUE);
// [["title"=>"", "content"=>""],["title"=>"", "content"=>""]]
$arr = json_decode('{"keyword":[{"consultion":[{"title":"'u0645'u062f'u0629 'u0627'u0644'u0645'u0631'u0636","content":"'u0645'u0627 'u0645'u0639'u062f'u0644 'u0627'u0644'u0628'u0642'u0627'u0621 'u0639'u0644'u0649 'u0642'u064a'u062f 'u0627'u0644'u062d'u064a'u0627'u0629 'u0628'u0639'u062f 'u0627'u0644'u0625'u0635'u0627'u0628'u0629 'u0628'u0645'u0631'u0636 'u0627'u0644'u0623'u0644'u0632'u0647'u0627'u064a'u0645'u0631'u061f","id":"1"}]},{"consultion":[{"title":" 'u0645'u062a'u0644'u0627'u0632'u0645'u0629 'u063a'u0631'u0648'u0628 'u0627'u0644'u0634'u0645'u0633","content":" 'u0645'u0627 '"'u0645'u062a'u0644'u0627'u0632'u0645'u0629 'u063a'u0631'u0648'u0628 'u0627'u0644'u0634'u0645'u0633'" 'u0627'u0644'u062a'u064a 'u0642'u062f 'u064a'u0639'u0627'u0646'u064a 'u0645'u0646'u0647'u0627 'u0645'u0631'u064a'u0636 'u0627'u0644'u0623'u0644'u0632'u0647'u0627'u064a'u0645'u0631'u061f","id":"2"}]},{"consultion":[{"title":"'u0645'u062f'u0629 'u0627'u0644'u0645'u0631'u0636","content":"'u0645'u0627 'u0645'u0639'u062f'u0644 'u0627'u0644'u0628'u0642'u0627'u0621 'u0639'u0644'u0649 'u0642'u064a'u062f 'u0627'u0644'u062d'u064a'u0627'u0629 'u0628'u0639'u062f 'u0627'u0644'u0625'u0635'u0627'u0628'u0629 'u0628'u0645'u0631'u0636 'u0627'u0644'u0623'u0644'u0632'u0647'u0627'u064a'u0645'u0631'u061f","id":"1"}]}]} ',true);
$tmp = array();
foreach ($arr["keyword"] as $item){
if(in_array( $item, $tmp ) ){ continue; }
$tmp[] = $item;
}
print_r($tmp);
// or
json_encode($tmp);
<?php
$data = json_decode('{"keyword":[{"consultion":[{"title":"'u0645'u062f'u0629 'u0627'u0644'u0645'u0631'u0636","content":"'u0645'u0627 'u0645'u0639'u062f'u0644 'u0627'u0644'u0628'u0642'u0627'u0621 'u0639'u0644'u0649 'u0642'u064a'u062f 'u0627'u0644'u062d'u064a'u0627'u0629 'u0628'u0639'u062f 'u0627'u0644'u0625'u0635'u0627'u0628'u0629 'u0628'u0645'u0631'u0636 'u0627'u0644'u0623'u0644'u0632'u0647'u0627'u064a'u0645'u0631'u061f","id":"1"}]},{"consultion":[{"title":" 'u0645'u062a'u0644'u0627'u0632'u0645'u0629 'u063a'u0631'u0648'u0628 'u0627'u0644'u0634'u0645'u0633","content":" 'u0645'u0627 '"'u0645'u062a'u0644'u0627'u0632'u0645'u0629 'u063a'u0631'u0648'u0628 'u0627'u0644'u0634'u0645'u0633'" 'u0627'u0644'u062a'u064a 'u0642'u062f 'u064a'u0639'u0627'u0646'u064a 'u0645'u0646'u0647'u0627 'u0645'u0631'u064a'u0636 'u0627'u0644'u0623'u0644'u0632'u0647'u0627'u064a'u0645'u0631'u061f","id":"2"}]},{"consultion":[{"title":"'u0645'u062f'u0629 'u0627'u0644'u0645'u0631'u0636","content":"'u0645'u0627 'u0645'u0639'u062f'u0644 'u0627'u0644'u0628'u0642'u0627'u0621 'u0639'u0644'u0649 'u0642'u064a'u062f 'u0627'u0644'u062d'u064a'u0627'u0629 'u0628'u0639'u062f 'u0627'u0644'u0625'u0635'u0627'u0628'u0629 'u0628'u0645'u0631'u0636 'u0627'u0644'u0623'u0644'u0632'u0647'u0627'u064a'u0645'u0631'u061f","id":"1"}]}]}');
$data = $data->keyword[0];
$new_data['title'] = $data->title;
$new_data['consultion'] = $data->consultion;
echo json_encode($new_data);
?>
PS:
<?php
$data = json_decode('{"keyword":[{"consultion":[{"title":"'u0645'u062f'u0629 'u0627'u0644'u0645'u0631'u0636","content":"'u0645'u0627 'u0645'u0639'u062f'u0644 'u0627'u0644'u0628'u0642'u0627'u0621 'u0639'u0644'u0649 'u0642'u064a'u062f 'u0627'u0644'u062d'u064a'u0627'u0629 'u0628'u0639'u062f 'u0627'u0644'u0625'u0635'u0627'u0628'u0629 'u0628'u0645'u0631'u0636 'u0627'u0644'u0623'u0644'u0632'u0647'u0627'u064a'u0645'u0631'u061f","id":"1"}]},{"consultion":[{"title":" 'u0645'u062a'u0644'u0627'u0632'u0645'u0629 'u063a'u0631'u0648'u0628 'u0627'u0644'u0634'u0645'u0633","content":" 'u0645'u0627 '"'u0645'u062a'u0644'u0627'u0632'u0645'u0629 'u063a'u0631'u0648'u0628 'u0627'u0644'u0634'u0645'u0633'" 'u0627'u0644'u062a'u064a 'u0642'u062f 'u064a'u0639'u0627'u0646'u064a 'u0645'u0646'u0647'u0627 'u0645'u0631'u064a'u0636 'u0627'u0644'u0623'u0644'u0632'u0647'u0627'u064a'u0645'u0631'u061f","id":"2"}]},{"consultion":[{"title":"'u0645'u062f'u0629 'u0627'u0644'u0645'u0631'u0636","content":"'u0645'u0627 'u0645'u0639'u062f'u0644 'u0627'u0644'u0628'u0642'u0627'u0621 'u0639'u0644'u0649 'u0642'u064a'u062f 'u0627'u0644'u062d'u064a'u0627'u0629 'u0628'u0639'u062f 'u0627'u0644'u0625'u0635'u0627'u0628'u0629 'u0628'u0645'u0631'u0636 'u0627'u0644'u0623'u0644'u0632'u0647'u0627'u064a'u0645'u0631'u061f","id":"1"}]}]}');
$keywords = $data->keyword;
$new_data = array();
foreach ($keywords as $consultion) {
if (array_search($consultion, $new_data) === FALSE) {
$new_data[] = $consultion;
}
}
print_r($new_data);
//echo json_encode($new_data);
/******************** Example **********************************/
echo "'r'n'r'n";
$data = array();
$data['consultion'][] = array('title' => 'a', 'id' => 1);
$data['consultion'][] = array('title' => 'b', 'id' => 2);
$data['consultion'][] = array('title' => 'a', 'id' => 1); //duplicated
$encoded = json_encode($data);
$data = json_decode($encoded);
$new_data = array();
foreach ($data->consultion as $obj) {
if (array_search($obj, $new_data) === FALSE) {
$new_data[] = $obj;
}
}
print_r($new_data);
//echo json_encode($new_data);
?>