2013-10-13 28 views
-6

有人可以帮助我如何编码温度的差异。 例如,在通道1中,差值应为3。通道二应该是10,通道三应该是2.另外,如果我改变温度为负值。我应该如何编码? HELP如何在php中编写计算差异的代码?

<?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>"; 

} 

?> 
+2

我假设你有减号键计算器。现在有一个想法 –

+0

'foreach($ a1 as $ channel => $ value){$ difference = $ value - $ a2 [$ key]; ...做一些与$差异} –

+0

请参阅http://stackoverflow.com/questions/9118150/php-subtract-array-values –

回答

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

参考:

+0

谢谢。但我想将这些结果写入文本文件。怎么做 ?我是新来的PHP – Yang