>백엔드 개발 >PHP 튜토리얼 >php数据问题,请教高手!

php数据问题,请教高手!

WBOY
WBOY원래의
2016-06-23 14:24:231000검색

php 数组

有这样一个数组:
Array(    [0] => Array        (            [time] => 1382060855000            [day] => 2013-10-18            [latitude] => 39.9289            [longitude] => 116.3883        )    [1] => Array        (            [time] => 1382060855000            [day] => 2013-10-18            [latitude] => 42            [longitude] => 43.5        )    [2] => Array        (            [time] => 1382060855000            [day] => 2013-10-18            [latitude] => 38.9122            [longitude] => 121.6022        )    [3] => Array        (            [time] => 1382060855000            [day] => 2013-10-18            [latitude] => 40.5525            [longitude] => -74.2915        )    [4] => Array        (            [time] => 1382060855000            [day] => 2013-10-18            [latitude] => 40.5525            [longitude] => -74.2915        )    [5] => Array        (            [time] => 1382060855000            [day] => 2013-10-18            [latitude] => 38.9122            [longitude] => 121.6022        )    [6] => Array        (            [time] => 1382060855000            [day] => 2013-10-18            [latitude] => 38.9122            [longitude] => 121.6022        ))

里面的经纬度有重复的数据,想过滤掉重复数据,并且得到每一个相同经纬度的数量。最后得到的数组如下:


这个要怎么实现呢?

回复讨论(解决方案)

$ar = array (  0 =>   array (    'time' => '1382060855000',    'day' => '2013-10-18',    'latitude' => '39.9289',    'longitude' => '116.3883',  ),  1 =>   array (    'time' => '1382060855000',    'day' => '2013-10-18',    'latitude' => '42',    'longitude' => '43.5',  ),  2 =>   array (    'time' => '1382060855000',    'day' => '2013-10-18',    'latitude' => '38.9122',    'longitude' => '121.6022',  ),  3 =>   array (    'time' => '1382060855000',    'day' => '2013-10-18',    'latitude' => '40.5525',    'longitude' => '-74.2915',  ),  4 =>   array (    'time' => '1382060855000',    'day' => '2013-10-18',    'latitude' => '40.5525',    'longitude' => '-74.2915',  ),  5 =>   array (    'time' => '1382060855000',    'day' => '2013-10-18',    'latitude' => '38.9122',    'longitude' => '121.6022',  ),  6 =>   array (    'time' => '1382060855000',    'day' => '2013-10-18',    'latitude' => '38.9122',    'longitude' => '121.6022',  ),);$res = array();foreach($ar as $v) {  $k = $v['latitude'] . ',' . $v['longitude'];  if(isset($res[$k])) $res[$k]['count']++;  else $res[$k] = array('latitude' => $v['latitude'], 'longitude' => $v['longitude'], 'count' => 1);}print_r(array_values($res));

Array
(
    [0] => Array
        (
            [latitude] => 39.9289
            [longitude] => 116.3883
            [count] => 1
        )

    [1] => Array
        (
            [latitude] => 42
            [longitude] => 43.5
            [count] => 1
        )

    [2] => Array
        (
            [latitude] => 38.9122
            [longitude] => 121.6022
            [count] => 3
        )

    [3] => Array
        (
            [latitude] => 40.5525
            [longitude] => -74.2915
            [count] => 2
        )

)

贴出经var_export(); 输出后的数组出来

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.