在PHP中对相同的键进行分组

在PHP中对相同的键进行分组,php,Php,我有如下数组数据:- Array ( [0] => Array ( [lane_id] => 1 [lane_name] => Jagorawi (arah ke Bogor & Ciawi) [lat] => -6.267049789428711 [lng] => 106.873

我有如下数组数据:-

  Array
    (
        [0] => Array
            (
                [lane_id] => 1
                [lane_name] => Jagorawi (arah ke Bogor & Ciawi)
                [lat] => -6.267049789428711
                [lng] => 106.873229980468750
            )

        [1] => Array
            (
                [lane_id] => 1
                [lane_name] => Jagorawi (arah ke Bogor & Ciawi)
                [lat] => -6.267449855804443
                [lng] => 106.873207092285160
            )

        [2] => Array
            (
                [lane_id] => 1
                [lane_name] => Jagorawi (arah ke Bogor & Ciawi)
                [lat] => -6.267680168151855
                [lng] => 106.873199462890620
            )
)
我想分组,以便按行id和行id对数据进行分组,从而获得更多的latlang。

新数组:

<?php

$original_array = array(
        array(
                "lane_id" => 1,
                "lane_name" => 'Jagorawi (arah ke Bogor & Ciawi)',
                "lat" => -6.267049789428711,
                "lng" => 106.873229980468750
            ),
        array(
                "lane_id" => 1,
                "lane_name" => 'Jagorawi (arah ke Bogor & Ciawi)',
                "lat" => -6.267449855804443,
                "lng" => 106.873207092285160
            ),
        array(
                "lane_id" => 1,
                "lane_name" => 'Jagorawi (arah ke Bogor & Ciawi)',
                "lat" => -6.267680168151855,
                "lng" => 106.873199462890620
            )
);    

$arr_lanes = array();

foreach( $original_array as $arr_lane => $arr)
{
    foreach($arr as $key => $value)
    {
        //echo $key . ": ". $value."<br>";

        if($key!="lat" && $key!="lng")
        {
            $arr_lanes[$key] = $arr[$key];
        }
        else
        {
            if($key=='lat') $arr_lanes["lats"][]= $arr[$key];
            else
            if($key=='lng') $arr_lanes["lngs"][]= $arr[$key];    
        }
    }
}

var_dump($arr_lanes );

/*

Output:

array (size=4)
  'lane_id' => int 1
  'lane_name' => string 'Jagorawi (arah ke Bogor & Ciawi)' (length=32)
  'lats' => 
    array (size=3)
      0 => float -6.2670497894287
      1 => float -6.2674498558044
      2 => float -6.2676801681519
  'lngs' => 
    array (size=3)
      0 => float 106.87322998047
      1 => float 106.87320709229
      2 => float 106.87319946289

*/      

输出:

Array
(
    [1] => Array
        (
            [0] => Array
                (
                    [lane_id] => 1
                    [lane_name] => lane1
                    [more_data] => first
                )

            [1] => Array
                (
                    [lane_id] => 1
                    [lane_name] => lane1
                    [more_data] => second
                )

            [2] => Array
                (
                    [lane_id] => 1
                    [lane_name] => lane1
                    [more_data] => fourth
                )

        )

    [2] => Array
        (
            [0] => Array
                (
                    [lane_id] => 2
                    [lane_name] => lane2
                    [more_data] => third
                )

            [1] => Array
                (
                    [lane_id] => 2
                    [lane_name] => lane2
                    [more_data] => fifth
                )

        )

)

你能告诉我你想要的最终结果是什么样的吗?你的意思是“分组方式”
lane\u id
?Aan Elzam如果你有下面的答案,请检查它们。如果对你有效,请将其中一个标记为已接受。如果每个答案都有用,你可以向上投票(将来,当你至少有15个声望时)
Array
(
    [1] => Array
        (
            [0] => Array
                (
                    [lane_id] => 1
                    [lane_name] => lane1
                    [more_data] => first
                )

            [1] => Array
                (
                    [lane_id] => 1
                    [lane_name] => lane1
                    [more_data] => second
                )

            [2] => Array
                (
                    [lane_id] => 1
                    [lane_name] => lane1
                    [more_data] => fourth
                )

        )

    [2] => Array
        (
            [0] => Array
                (
                    [lane_id] => 2
                    [lane_name] => lane2
                    [more_data] => third
                )

            [1] => Array
                (
                    [lane_id] => 2
                    [lane_name] => lane2
                    [more_data] => fifth
                )

        )

)