使用 Raspberry 减去 PHP 中的两个数组

Subtract two arrays in PHP using Raspberry

我有两个数组,每个数组包含一个来自不同日期(24 小时间隔)的 mysql select。数组包含 1440 个条目和另一个 sub-array(temp1, temp2, temp3 and date)。我试过 foreach($array as $key=>$val) 但我不能用另一个减去 $val,比方说 $val2。最合法的方法是(基于网络搜索):

foreach($yesterdayValues as $key=>$val){
    if(substr($key, 0, 5) == 'temp2')
        $todayValues[$key] -= $val;  
}

但是不行。

主要思想是用昨天的 temp2 值减去今天的 temp2 值,以查看温度变化。并很好地展示它们。

编辑:类似的东西?

$yesterdayValues['temp1'] = 18.145666122437;
$yesterdayValues['temp2'] = 19.1425666122437;
$yesterdayValues['temp3'] = 20.845666122437;

$difference = array();
$i = 2;
foreach($yesterdayValues as $key=>$val){
    if(isset($yesterdayValues['temp'.$i])) {
        $difference[$key] = (float)($val - $yesterdayValues['temp'.$i]);
    }
    $i++;
}


var_dump($difference);

显示:数组(2){ ["temp1"]=> 浮动(-0.9969004898067)["temp2"]=> 浮动(-1.7030995101933)}

答案是这样的(但目前是静态的):

for($i=0;$i<1440;$i++){
    (float)$yesterdayValues[$i]['temp2'] = (float)$last24hourValues[$i]['temp2'] - (float)$yesterdayValues[$i]['temp2'];
}

24小时内有1440个条目,可以通过简单的for手动获取密钥。也许这可以与 foreach 一起使用而不是简单的 for。稍后我会查看。

希望这对你有用

$yesterdayValues = array(
    array('temp1'=>18.145666122437,'temp2'=>14.875, 'temp3'=>18.104000091553, 'date'=>'2016-02-29 10:47:10'),
    array('temp1'=>19.245666022437,'temp2'=>14.875, 'temp3'=>19.104000091553, 'date'=>'2016-02-29 11:47:10'),
    array('temp1'=>20.145666122437,'temp2'=>14.875, 'temp3'=>20.104000091553, 'date'=>'2016-02-29 12:47:10'),
) ;
$todaysValues = array(
    array('temp1'=>18.145666122437,'temp2'=>12.875, 'temp3'=>18.104000091553, 'date'=>'2016-02-29 10:47:10'),
    array('temp1'=>19.145666122437,'temp2'=>14.075, 'temp3'=>19.104000091553, 'date'=>'2016-02-29 11:47:10'),
    array('temp1'=>20.145666122437,'temp2'=>17.175, 'temp3'=>20.104000091553, 'date'=>'2016-02-29 12:47:10'),
) ;
$diffArr = array();
foreach ($yesterdayValues AS $key => $dataArr) {
    $diffArr[$key] = (float)($dataArr['temp2'] - $todaysValues[$key]['temp2']);
}