如何在php数组中获取索引值的差

问题描述 投票:0回答:1

我有一个如下所示的数组。

Array ( [0] => Array ( [label] => 2020-04-01 11:44:13 [y] => 100 ) [1] => Array ( [label] => 2020-04- 
01 11:45:49 [y] => 150 ) [2] => Array ( [label] => 2020-04-01 13:11:24 [y] => 175 ) [3] => Array ( 
[label] => 2020-04-02 10:19:08 [y] => 200 ) [4] => Array ( [label] => 2020-04-02 11:24:38 [y] => 250 
) [5] => Array ( [label] => 2020-04-04 12:24:38 [y] => 300 ) [6] => Array ( [label] => 2020-04-05 
13:49:38 [y] => 400 ) [7] => Array ( [label] => 2020-04-05 14:36:38 [y] => 450 ) [8] => Array ( 
[label] => 2020-04-05 14:24:38 [y] => 550 ) [9] => Array ( [label] => 2020-04-08 09:20:41 [y] => 600 
) [10] => Array ( [label] => 2020-04-08 10:09:38 [y] => 635 ) [11] => Array ( [label] => 2020-04-08 
11:35:33 [y] => 690 ) [12] => Array ( [label] => 2020-04-08 13:24:38 [y] => 725 ) [13] => Array ( 
[label] => 2020-04-08 17:12:35 [y] => 775 ) )

您可以看到,我有一个14的数组,每个数组都有两个值labely,我将它们都作为图表数据点传递。

下面是我的代码

<?PHP
 $dataPointskWh = array();
 $dataPointskWhDiff = array();
 $model = $dataProvider->getModels();

 foreach ($model as $row)
 {
  // pushing for kwh values
  array_push($dataPointskWh, array("label"=>$row['Data_Date_Time'],"y"=>$row['kWh']));
 }

 ?>

我想做什么

  1. 我想在下面的模式array[1][y] - array[0][y]中给与我50,在array[2][y] - array[1][y]中给我25,以此类推,直到数组末尾有所不同。
  2. 因此,我也想使日期时间之间的差异,例如array[1][label]-array[2][label]array[2][label]-array[1][label]等)>
  3. 然后我要执行此array_push($dataPointskWhDiff, array("label"=>$row['Data_Date_Time'],"y"=>$row['kWh']));
  4. 最后,我将其传递给图表dataPoints: <?php echo json_encode($dataPointskWhdIFF, JSON_NUMERIC_CHECK); ?>中的数据点>

    foreach ($dataPointskWh as $key => $number) {
    if (isset($dataPointskWh[$key+1])) {
        $dataPointskWhDiff[$number] = $number - $dataPointskWh[$key+1];
    }
    }
    
     var_dump($dataPointskWhDiff);
     die();
    
  5. 我得到的错误是Unsupported operand types处的$dataPointskWhDiff[$number] = $number - $dataPointskWh[$key+1];

    我该如何实现?任何帮助将不胜感激

我有一个看起来像下面的数组。 Array([0] => Array([label] => 2020-04-01 11:44:13 [y] => 100)[1] => Array([label] => 2020-04- 01 11: 45:49 [y] => 150)[2] =&...

php arrays array-push
1个回答
0
投票

首先,在这一行中,您有2个基本错误。

$dataPointskWhDiff[$number] = $number - $dataPointskWh[$key+1];
© www.soinside.com 2019 - 2024. All rights reserved.