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

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

將二維php數組元素相減并輸出到同一張表

將二維php數組元素相減并輸出到同一張表

PHP
UYOU 2022-10-14 10:42:14
我有一個二維數組,其中填充了 2 個不同年份的 12 個月名稱和平均溫度。截至目前,我讓他們在使用 foreach 循環時打印到一個 html 表中。但是,我還需要找到一種方法來計算差異并將其打印到其余數據旁邊的同一張表中,以及完全打印總差異。如果差異高于 2,我還需要將差異打印為紅色文本,如果差異低于 -2,則打印為綠色。否則顏色不會改變。因為這幾乎是我第一次在一定程度上使用 php,所以我完全不知道如何實現它。到目前為止,這是我的代碼,它成功打印到 html 表中:<?php        $months = array          (          array("Jan",33.6,32.6),          array("Feb",35.6,42.9),          array("Mar",43.1,40.3),          array("Apr",53.2,51.4),          array("May",62.7,68.1),          array("Jun",76.3,72.5),          array("Jul",76.3,77.1),          array("Aug",74.6,78.6),          array("Sep",68,73.2),          array("Oct",57,60.1),          array("Nov",46.7,45.3),          array("Dec",37.7,41.0)          );                  //print array into an html table                echo '<table>';        echo '<tr><th>Month</th><th>1950 - 2018</th><th>2018</th><th>Difference</th></tr>';        foreach ($months as $month) {                        echo '<tr>';                        foreach ($month as $avg) {                    echo '<td>' . $avg . '</td>';            }            echo '</tr>';        }        echo '</table>';?>和預期的結果它 類似于這個任何建議將不勝感激!謝謝!
查看完整描述

2 回答

?
一只名叫tom的貓

TA貢獻1906條經驗 獲得超3個贊

你快到了。您必須計算 2 個日期之間的差異并在您的內部循環下方相應地分配顏色。條件如下:


$diff = $month[2] - $month[1];

$total += $diff;



if($diff < -2.0){

    echo '<td style="color:green">' . $diff . '</td>';

}else if($diff > 2.0){

    echo '<td style="color:red">' . $diff . '</td>';

}else{

    echo '<td>' . $diff . '</td>';

}

完整代碼:


<?php


$months = array

  (

  array("Jan",33.6,32.6),

  array("Feb",35.6,42.9),

  array("Mar",43.1,40.3),

  array("Apr",53.2,51.4),

  array("May",62.7,68.1),

  array("Jun",76.3,72.5),

  array("Jul",76.3,77.1),

  array("Aug",74.6,78.6),

  array("Sep",68,73.2),

  array("Oct",57,60.1),

  array("Nov",46.7,45.3),

  array("Dec",37.7,41.0)

  );


echo '<table border = "1">';

echo '<tr><th>Month</th><th>1950 - 2018</th><th>2018</th><th>Difference</th></tr>';

$total = 0;


foreach ($months as $month) {

    echo '<tr>';


    foreach ($month as $avg) {

        echo '<td>' . $avg . '</td>';

    }


    $diff = $month[2] - $month[1];

    $total += $diff;



    if($diff < -2.0){

        echo '<td style="color:green">' . $diff . '</td>';

    }else if($diff > 2.0){

        echo '<td style="color:red">' . $diff . '</td>';

    }else{

        echo '<td>' . $diff . '</td>';

    }


    echo '</tr>';

}


echo "<tr><td colspan='4'>Total difference : $total</td></tr>";

echo '</table>';


查看完整回答
反對 回復 2022-10-14
?
GCT1015

TA貢獻1827條經驗 獲得超4個贊

用于array_walk將臨時差異添加到每個子數組:


array_walk($months, function(&$month){

    $month[3] = $month[2] - $month[1]; 

});

然后 $month[3] 將是你的區別。為了便于閱讀,我將刪除內部循環并每月顯式回顯該行:


foreach ($months as $month) {

    echo '<tr>';

    echo '<td>' . $month[0] . '</td>';

    echo '<td>' . $month[1] . '</td>';

    echo '<td>' . $month[2] . '</td>';

    echo '<td';


    if ($month[3] > 2) {

        echo ' style="color: red;"';

    }

    elseif ($month[3] < -2) {

        echo ' style="color: green;"';

    }


    echo '>' . $month[3] . '</td>';

    echo '</tr>';

}


查看完整回答
反對 回復 2022-10-14
  • 2 回答
  • 0 關注
  • 132 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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