Фильтр массива php дублирует, где value1 и value2 это value1 и value2 - PullRequest
0 голосов
/ 14 сентября 2018

Я пытаюсь отфильтровать массив для дубликатов.

В настоящее время я могу фильтровать с 1 значением с помощью:

$json = json_encode($inBounds);
$arr = json_decode($json,true);
$nodupes = array_column($arr, Null, "limit_lat");
$count = array_count_values(array_column($arr, "limit_lat"));

foreach ($count as $key => $c){
if($c <10){
$sizeIcon= 'icon1';
}
if($c >10 && $c <100){
$sizeIcon= 'icon10';
}   
if($c >100 && $c <1000){
$sizeIcon= 'icon100';
}
if($c >1000 && $c <10000){
$sizeIcon= 'icon1000';
}   
if($c >10000){
$sizeIcon= 'icon10000';
}   

if($c === 1){   
     $nodupes[$key]['count'] = '';
     $nodupes[$key]['sizeIcon'] = $sizeIcon;
}else{
     $nodupes[$key]['count'] = $c;   
     $nodupes[$key]['sizeIcon'] = $sizeIcon;
     }
}
$nodupes = array_values($nodupes);

В настоящее время я фильтрую "limit_lat", но теперь мне также нужноfilter "limit_lng"

Таким образом, дубликаты должны удаляться (и учитываться) только тогда, когда (limit_lat and limit_lng) равен (limit_lat and limit_lng).

Мой json:

[{"id":18,"lat":"50.84757300","lng":"5.71289100","name":"Dennis","date":"2018-09-14 11:14:34","sizeIcon":"icon1","limit_lat":"51","limit_lng":"6","count":""},{"id":19,"lat":"51.06901700","lng":"-62.66601600","name":"Test","date":"2018-09-14 11:14:42","sizeIcon":"icon1","limit_lat":"51","limit_lng":"-63","count":""}]

Можете ли вы помочь мне здесь?Спасибо, Деннис

1 Ответ

0 голосов
/ 14 сентября 2018

получил его для работы с другим подходом.Мои $ inBounds теперь объединяют в одном ключе широту.

$inBounds[$x]['limit'] = $row['limit_lat'].','.$row['limit_lng'];

$json = json_encode($inBounds);
$arr = json_decode($json,true);
$nodupes = array_column($arr, Null, "limit");
$nodupes_lat = array_column($arr, Null, "limit");
$count = array_count_values(array_column($arr, "limit"));

foreach ($count as $key => $c){
if($c <10){
$sizeIcon= 'icon1';
}
if($c >10 && $c <100){
$sizeIcon= 'icon10';
}   
if($c >100 && $c <1000){
$sizeIcon= 'icon100';
}
if($c >1000 && $c <10000){
$sizeIcon= 'icon1000';
}   
if($c >10000){
$sizeIcon= 'icon10000';
}   

if($c === 1){   
     $nodupes[$key]['count'] = '';
     $nodupes[$key]['sizeIcon'] = $sizeIcon;
}else{
     $nodupes[$key]['count'] = $c;   
     $nodupes[$key]['sizeIcon'] = $sizeIcon;
     }
}
$nodupes = array_values($nodupes);
...