-6

有人可以帮我如何编码温度的差异。例如,在通道一中,差异应该是 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>";

}

?>
4

1 回答 1

0

您可以为此使用 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

参考:

于 2013-10-13T16:47:04.553 回答