Вычтите два массива в PHP, используя Raspberry

У меня есть два массива, каждый из которых содержит один MySQL выбрать из разных дней (24-часовой интервал). Массивы содержат 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 значения со вчерашнего дня, чтобы увидеть изменения температуры. И отображать их красиво.

1

Решение

РЕДАКТИРОВАТЬ: Что-то подобное?

$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);

show: array (2) {[«temp1»] => float (-0.9969004898067) [«temp2»] => float (-1.7030995101933)}

1

Другие решения

Ответ таков (но на данный момент это немного статично):

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

В течение 24 часов существует 1440 записей, и ключ можно получить вручную в простой форме. Может быть, это может работать с foreach, а не просто для. Я проверю позже.

0

может это сработает для вас

$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']);
}
0
По вопросам рекламы [email protected]