2015-10-07 2 views
0

Код:Удаление дубликатов из массива JSon

$decode = json_decode($get, TRUE); 
    foreach($decode['List'] as $lst) { 

    } 

У меня есть массив $ LST, который выглядит следующим образом:

"List":[{ 
    "Name":"Ivan", 
    "Surname":"Petrov", 
}, { 
    "Name":"Ivan", 
    "Surname":"Ivanov", 
}, { 
    "Name":"Andrey", 
    "Surname":"Sidorov", 
}] 

И мне нужно, чтобы удалить дубликаты, так что-то вроде этого остается (продублировать 'Имя'):

"List":[{ 
    "Name":"Ivan", 
    "Surname":"Petrov", 
}, { 
    "Name":"Andrey", 
    "Surname":"Sidorov", 
}] 
+0

Как вы собираетесь делать, что фильтрация? PHP? –

+0

Да, php. Мне нужно ввести: $ lst, например, $ lst2. – user5419467

+0

'$ json = <<< JSON [ {" a ":" abc "," b: ":" 10 "}, {" a ":" abd "," b: ":" 12 "} , {"a": "abc", "b:": "14"}, {"a": "abe", "b:": "15"}, {"a": "abf" , "b:": "16"}, {"a": "abg", "b:": "17"}, {"a": "abg", "b:": "19"} ] JSON; $ json_array = json_decode ($ json, TRUE); $ new_array = array(); $ exists = array(); foreach ($ json_array as $ element) { if (! In_array ($ element ['a'], $ существует)) { $ new_array [] = $ element; $ существует [] = $ element ['a']; }} печати json_encode ($ new_array), ' – user5419467

ответ

0

Использование lodash:

var list = [{ 
 
    "Name":"Ivan", 
 
    "Surname":"Petrov", 
 
}, { 
 
    "Name":"Ivan", 
 
    "Surname":"Ivanov", 
 
}, { 
 
    "Name":"Andrey", 
 
    "Surname":"Sidorov", 
 
}]; 
 

 
var noDupsList = _.uniq(list, 'Name'); 
 

 
alert(JSON.stringify(noDupsList));
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.10.1/lodash.js"></script>

+0

Могу ли я сделать это, потому что у меня есть массив как $ LST: вар = список; list = $ lst; И новый уникальный массив var as $ lstuniq – user5419467

0

Я не думаю, что предопределенная функция существует для достижения этой цели.

Но вы применяете сравнение по перебору и дублировать один можно удалить из JSON с помощью удаления оператора Как Удалять х [0]

+0

echo $ lst ['Name'] показать мне: Ivan Ivan Andrey – user5419467

Смежные вопросы