有这样一个数组:
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
        )
)
里面的经纬度有重复的数据,想过滤掉重复数据,并且得到每一个相同经纬度的数量。最后得到的数组如下:
这个要怎么实现呢?php数组

解决方案 »

  1.   

    $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
            ))
      

  2.   

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