【问题标题】:How to code in php of calculating the difference?如何在php中编写计算差异的代码?
【发布时间】:2013-10-21 06:29:29
【问题描述】:

谁能帮助我如何编码温度的差异。 例如,在通道一中,差异应该是 3 。通道二应该是 10,通道三应该是 2。另外,如果我将温度改为负值。我应该如何编码?帮助

<?php
$a1=array(
"channelOne"=>"45",
"channelTwo"=>"100",
"channelThree"=>"20"

);

foreach($a1 as $Name=>$Temperature) {
echo "Channel_Name"."<br>".$Name."<br>"."Actual_Temperature"."<br>".$Temperature."<br>";

}

$a2=array(
"channelOne"=>"48",
"channelTwo"=>"90",
"channelThree"=>"22"
);

foreach($a2 as $Name=>$Temperature_Now) {
echo "Channel_Name"."<br>".$Name."<br>"."Temperature_Now"."<br>".$Temperature_Now."<br>";

}

?>

【问题讨论】:

标签: php


【解决方案1】:

您可以为此使用 array_map 函数

$a1=array(
"channelOne"=>"45",
"channelTwo"=>"100",
"channelThree"=>"20"
);
$a2=array(
"channelOne"=>"48",
"channelTwo"=>"90",
"channelThree"=>"22"
);

$diff = array_map(
    function ($a1, $a2)
    {
        return abs($a1-$a2);
    }, $a1,$a2
);
print_r($diff);

小提琴:http://phpfiddle.org/main/code/cig-k2n

如果你想保持键不变,你可以像这样使用 array_walk。

$a1=array(
"channelOne"=>"45",
"channelTwo"=>"100",
"channelThree"=>"20"
);
$a2=array(
"channelOne"=>"48",
"channelTwo"=>"90",
"channelThree"=>"22"
);

array_walk($a1,
function (&$v, $k) use ($a1,$a2)
{
    $v = abs($a1[$k]-$a2[$k]);
});
print_r($a1);

小提琴:http://phpfiddle.org/main/code/njd-qeh

参考:

【讨论】:

  • 谢谢。但我想将这些结果写入文本文件。怎么做 ?我是 php 新手
猜你喜欢
  • 1970-01-01
  • 2014-07-29
  • 2012-05-22
  • 2016-11-24
  • 1970-01-01
  • 1970-01-01
  • 2022-11-12
  • 2016-09-08
  • 1970-01-01
相关资源
最近更新 更多