2013-10-13 67 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