[英]PHP Array values to unique keys
我有一個從MYSQL查詢結果構建的關聯數組。 它有190個鍵,由10個唯一的“名稱”和19個唯一的“ display_name”(2B,3B,HR,RBI,HR等)組成,每個“名稱”和“ display_name”組合都有一個“值”。
array (size=190)
0 =>
array (size=3)
'name' => string 'Name 1' (length=17)
'display_name' => string '2B' (length=2)
'value' => string '10' (length=2)
1 =>
array (size=3)
'name' => string 'Name 2' (length=20)
'display_name' => string '2B' (length=2)
'value' => string '7' (length=1)
2 =>
array (size=3)
'name' => string 'Name 3' (length=18)
'display_name' => string '2B' (length=2)
'value' => string '5' (length=1)
3 =>
array (size=3)
'name' => string 'Name 4' (length=19)
'display_name' => string '2B' (length=2)
'value' => string '3' (length=1)
4 =>
array (size=3)
'name' => string 'Name 5' (length=11)
'display_name' => string '2B' (length=2)
'value' => string '4' (length=1)
我想建立一個具有唯一的“ display_name”作為鍵以及“ name”作為鍵和與之關聯的“ value”的數組。 換句話說,如果您將其可視化為表格,則當前看起來像:
name : display name : value
name1 2B 10
name2 2B 7
name3 2B 5
name4 2B 3
name5 2B 4
我希望它看起來像:
name : 2B : 3B : RBI : HR
name1 10 5 7 10
name2 8 6 5 9
name3 9 4 3 5
name4 2 1 1 1
name5 6 2 2 8
我知道我可以在MYSQL中做到這一點,但我想知道PHP中的解決方案。 我已經嘗試了許多不同的方法並進行了引用(以及其他參考): 在PHP中轉置多維數組
MYSQL類似的解決方案:將行轉置為MYSQL中的標題
我可以找到的最接近的是這個,但是它確實為我獲得了唯一的“ display_name”值作為鍵,而不是$ fieldHash ['display_name']所有190個值。
while ($arr = mysql_fetch_assoc($res)){
$row [] = $arr;
foreach($row as $resultArray){
foreach ( $resultArray as $key=>$val ){
$fieldHash[$key][] = $val;
}
}
}
在這種情況下,我知道數據模型,但將來我希望對任何數量的“ display_name”保持動態。
如果有幫助,這里是MYSQL查詢:
$query = "SELECT teaminfo.name, league_stat_categories.display_name, team_points_season.value
FROM team_points_season, teaminfo, league_stat_categories
WHERE team_points_season.league_key = '$league_key' AND team_points_season.team_key = teaminfo.team_key AND team_points_season.league_key = league_stat_categories.league_key
AND team_points_season.stat_id = league_stat_categories.stat_id
GROUP BY league_stat_categories.display_name, team_points_season.team_key";
謝謝你的幫助!
//recieved_arr - your array from example
$new_arr=array();
foreach($recieved_arr as $arr){
// $arr['name']; $arr['display_name']; $arr['value']; - your values for current element
$name = $arr['name'];
$new_arr[$name]['display_name'] = $arr['display_name'];
$new_arr[$name]['value'] = $arr['value'];
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.