亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 PHP 中,將每個具有唯一值的重復名稱的二維數組轉換為具有多個值的唯一名稱的二維數組

在 PHP 中,將每個具有唯一值的重復名稱的二維數組轉換為具有多個值的唯一名稱的二維數組

PHP
子衿沉夜 2023-06-18 16:19:50
像這樣轉換數組的最有效方法是什么:[ [ 'Quiz 1' , 89 ] , ['Quiz 2' , 78] , ['Quiz 1' , 56] , ['Quiz 1' , 25] , ['Quiz 2' , 87] , ['Quiz 3' , 91] ]對此:[ [ 'Quiz 1' , 89, 56, 25] , ['Quiz 2' , 78, 87] , ['Quiz 3' , 91] ]在 PHP 中?
查看完整描述

1 回答

?
搖曳的薔薇

TA貢獻1793條經驗 獲得超6個贊

如果您指的是性能最佳,那么在 foreach 循環中迭代是最有效的方法。這可能不是最優雅的方式。您也可以使用array_map或其他類似的;每個人的喜好。在任何情況下,通過使用測驗編號作為分組鍵。這是簡單的:


$vars = [ [ 'Quiz 1' , 89 ] , ['Quiz 2' , 78] , ['Quiz 1' , 56] , ['Quiz 1' , 25] , ['Quiz 2' , 87] , ['Quiz 3' , 91] ];


$grouped = [];

foreach($vars as $var) {

    empty($grouped[$var[0]]) && $grouped[$var[0]] = [$var[0]]; // If Quiz # must go in.

    $grouped[$var[0]][] = $var[1];

}

輸出:


Array [

    [Quiz 1] => [

        [0] => Quiz 1

        [1] => 89

        [2] => 56

        [3] => 25

    ]

    [Quiz 2] => [

        [0] => Quiz 2

        [1] => 78

        [2] => 87

    ]

    [Quiz 3] => [

        [0] => Quiz 3

        [1] => 91

    ]

]

您會注意到這些值以 Quiz # 作為鍵進行分組。(必需。)使數組中的第一個條目變得多余。如果不需要數組內測驗編號,請注釋掉循環的第一行。如果您需要它并且不喜歡用作鍵的測驗數字,請完成以$grouped = array_values($grouped);恢復為普通數字索引。


查看完整回答
反對 回復 2023-06-18
  • 1 回答
  • 0 關注
  • 120 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號