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