Смог добиться:
array(6) {
["Арсенал"]=>
array(3) {
[0]=>
array(2) {
["player_name"]=>
string(25) "Санти Касорла"
["goal_count"]=>
string(1) "1"
}
[1]=>
array(2) {
["player_name"]=>
string(8) "Жиру"
["goal_count"]=>
string(1) "2"
}
[2]=>
array(2) {
["player_name"]=>
string(12) "Санчез"
["goal_count"]=>
string(1) "6"
}
}
["Франция"]=>
array(6) {
[0]=>
array(2) {
["player_name"]=>
string(14) "Матиюди"
["goal_count"]=>
string(1) "1"
}
[1]=>
array(2) {
["player_name"]=>
string(12) "Рибери"
["goal_count"]=>
string(1) "1"
}
[2]=>
array(2) {
["player_name"]=>
string(10) "Погба"
["goal_count"]=>
string(1) "2"
}
[3]=>
array(2) {
["player_name"]=>
string(14) "Бензема"
["goal_count"]=>
string(1) "5"
}
[4]=>
array(2) {
["player_name"]=>
string(8) "Жиру"
["goal_count"]=>
string(1) "6"
}
[5]=>
array(2) {
["player_name"]=>
string(10) "Менез"
["goal_count"]=>
string(1) "8"
}
}
Сделал это так:
$sortedOwners = array();
$sortedTeams = array();
foreach ($teamplayers as $owner_name ) {
$sortedTeam = array();
$sortedTeams[] = array($owner_name->teamplayer_name, $owner_name->teamplayer_goal);
foreach ($sortedTeams as $playergoal) {
$sortedTeam = array('player_name' => $playergoal[0], 'goal_count' => $playergoal[1]);
}
$sortedOwners[$owner_name->teams][] = $sortedTeam;
}
Но у одного человека может быть несколько команд. Например Вано играет за Францию и Арсенал, а Клим за Италию Ювентус. Соответственно нужно еще команды обернуть в массив с именем игрока
Решил задачу так:
$sortedOwners[$owner_name->owner_name][$owner_name->teams][] = $sortedTeam;