Вы можете использовать array_reduce
$arr = array(
array(
"UID" => 1,
"gameid" => 334613
),
array(
"UID" => 2,
"gameid" => 704234
),
array(
"UID" => 3,
"gameid" => 704234
)
);
$result = array_reduce($arr, function($c, $v){
if( !isset( $c[ $v["gameid"] ] ) ) $c[ $v["gameid"] ] = array(); //Will also work without this line.
$c[ $v["gameid"] ][] = $v["UID"];
return $c;
}, array());
print_r( $result );
Это приведет к:
Array
(
[334613] => Array
(
[0] => 1
)
[704234] => Array
(
[0] => 2
[1] => 3
)
)
Документ: array_reduce ()
Youтакже можно использовать классический foreach
$result = array();
foreach( $arr as $key => $val ) {
$result[ $val["gameid"] ][] = $val["UID"];
}