PHP 一种在 array_sum 之后找到密钥的方法
PHP a way to find the key after array_sum
我正在研究 SMA(简单移动平均线)函数 5 秒(从数组中逐个找到每 5 个值的最佳平均值)。
结果我有超过 1000 个数组,但这里我们只有 2 个。
0 => array:5 [▼
1608616431 => 54
1608616432 => 71
1608616433 => 79
1608616434 => 75
1608616435 => 100
]
1 => array:5 [▼
1608616432 => 71
1608616433 => 79
1608616434 => 75
1608616435 => 100
1608616436 => 99
]
我想从这些数组中找出平均值的最大值,我正在使用 array_sum
,然后对它们应用 max
函数。
对于上述数组,我们将得到如下的平均值:
Avgs=[78.8,84.8]
所以最大值是:84.8
我需要数组的第一个键,最大值来自它,
对于这个例子将是 1608616432
做array_sum()
时,您可以将结果写入索引数组,例如array_key_first()
.
然后在得到 max()
时,您可以使用 array_search()
找到匹配最大值的(第一个)时间戳。
此脚本将完全按照您的要求执行
<?php
$array = [
[
'1608616431' => 54,
'1608616432' => 71,
'1608616433' => 79,
'1608616434' => 75,
'1608616435' => 100
],
[
'1608616432' => 71,
'1608616433' => 79,
'1608616434' => 75,
'1608616435' => 100,
'1608616436' => 99,
],
];
$elementAverage = [];
foreach ($array as $index => $element) {
$average = array_sum($element)/count($element);
$elementArrayKeys = array_keys($element);
$elementAverage[reset($elementArrayKeys)] = $average;
}
echo array_search(max($elementAverage), $elementAverage);
输出
1608616432
首先我们得到$elementAverage
然后得到最大平均值
然后就用索引得到我想要的
我正在研究 SMA(简单移动平均线)函数 5 秒(从数组中逐个找到每 5 个值的最佳平均值)。
结果我有超过 1000 个数组,但这里我们只有 2 个。
0 => array:5 [▼
1608616431 => 54
1608616432 => 71
1608616433 => 79
1608616434 => 75
1608616435 => 100
]
1 => array:5 [▼
1608616432 => 71
1608616433 => 79
1608616434 => 75
1608616435 => 100
1608616436 => 99
]
我想从这些数组中找出平均值的最大值,我正在使用 array_sum
,然后对它们应用 max
函数。
对于上述数组,我们将得到如下的平均值:
Avgs=[78.8,84.8]
所以最大值是:84.8
我需要数组的第一个键,最大值来自它,
对于这个例子将是 1608616432
做array_sum()
时,您可以将结果写入索引数组,例如array_key_first()
.
然后在得到 max()
时,您可以使用 array_search()
找到匹配最大值的(第一个)时间戳。
此脚本将完全按照您的要求执行
<?php
$array = [
[
'1608616431' => 54,
'1608616432' => 71,
'1608616433' => 79,
'1608616434' => 75,
'1608616435' => 100
],
[
'1608616432' => 71,
'1608616433' => 79,
'1608616434' => 75,
'1608616435' => 100,
'1608616436' => 99,
],
];
$elementAverage = [];
foreach ($array as $index => $element) {
$average = array_sum($element)/count($element);
$elementArrayKeys = array_keys($element);
$elementAverage[reset($elementArrayKeys)] = $average;
}
echo array_search(max($elementAverage), $elementAverage);
输出
1608616432
首先我们得到$elementAverage
然后得到最大平均值
然后就用索引得到我想要的