第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

在 PHP 中按鍵和值對(duì)多維數(shù)組進(jìn)行分組

在 PHP 中按鍵和值對(duì)多維數(shù)組進(jìn)行分組

PHP
慕無忌1623718 2021-07-06 13:57:52
我有提交的調(diào)查,我想統(tǒng)計(jì)結(jié)果。每個(gè)調(diào)查都保存在一個(gè)多維數(shù)組中,如下所示:Array ( [name] => Clark Kent [rating] => 5 )這些來自循環(huán),因?yàn)樗鼈兪菃为?dú)的數(shù)據(jù)庫條目。所以我首先創(chuàng)建一個(gè)包含所有這些組合的新數(shù)組:$mods = array();$index = -1;foreach($fields as $field) {  $index++;  $mods[$index]['name'] = $field['name'];  $mods[$index]['rating'] = $field['rating'];}然后我將這些分組,以便將同名的所有評(píng)級(jí)放在一起,以便我可以稍后對(duì)它們進(jìn)行匯總。$groups = array();foreach ($mods as $value) {  $groups[$value['name']][] = $value;}這會(huì)產(chǎn)生以下結(jié)果:Array (   [Clark Kent] => Array (    [0] => Array (        [name] => Clark Kent        [rating] => 5        )    [1] => Array (        [name] => Clark Kent        [rating] => 5        )    )[Peter Parker] => Array (    [0] => Array (        [name] => Peter Parker        [rating] => 5        )    [1] => Array (        [name] => Peter Parker        [rating] => 5        )    )[Bruce Wayne] => Array (    [0] => Array (        [name] => Bruce Wayne        [rating] => 5        )    [1] => Array (        [name] => Bruce Wayne        [rating] => 5        )    )[Bruce Banner] => Array (    [0] => Array (        [name] => Bruce Banner        [rating] => 5        )    [1] => Array (        [name] => Bruce Banner        [rating] => 5        )    ))我想要完成的事情是這樣的:<table>  <tr>    <td>Clark Kent</td>    <td>{average of all ratings}</td>  </tr></table>我大部分時(shí)間都在那里,但我被卡住了!我不確定如何獲得name沒有任何類型的索引或鍵的分組,以便我可以將該值用于我的表。然后我需要對(duì)每個(gè)分組的值求和。
查看完整描述

3 回答

?
拉莫斯之舞

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超10個(gè)贊

我會(huì)在從數(shù)據(jù)庫讀取數(shù)據(jù)的循環(huán)中做所有必要的數(shù)學(xué)運(yùn)算。像這樣的東西:


$ratings = array();

while ($row = $result->fetch_assoc()) {

    $name = $row['name'];

    if (!isset($ratings[$name])) {

        $ratings[$name] = array('count' => 1, 'sum' => $row['rating']);

    }

    else {

        $ratings[$name]['count']++;

        $ratings[$name]['sum'] += $row['rating'];

    }

}

然后你可以像這樣輸出你的表格:


echo "<table>";

foreach ($ratings as $name => $r) {

    echo "<tr><td>$name</td><td>" . round($r['sum'] / $r['count'], 1) . "</td></tr>";

}

echo "</table>";


查看完整回答
反對(duì) 回復(fù) 2021-07-16
?
紅糖糍粑

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超6個(gè)贊

要獲得平均值,您可以執(zhí)行以下操作:


foreach ($groups as $name => $group) {

    $average = array_sum(array_column($group, 'rating')) / count($group);

    echo $name;

}


查看完整回答
反對(duì) 回復(fù) 2021-07-16
?
慕桂英4014372

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超13個(gè)贊

您可以首先在用于處理這些日期的結(jié)構(gòu)中簡化問題


foreach($fields as $field) {

     $mods[$field['name']][] = $field['rating'];

}

然后只用關(guān)鍵參數(shù) foreach


foreach($mods as $name => $mod) {

     echo $name;

     echo array_sum($mod) / count($mod);

}


查看完整回答
反對(duì) 回復(fù) 2021-07-16
  • 3 回答
  • 0 關(guān)注
  • 226 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)