计算php中数组值的百分比变化

计算php中数组值的百分比变化,php,arrays,Php,Arrays,我有以下创建数组的代码: $query = $conn->query("select step1 FROM workflow1 ORDER BY id DESC limit 4;"); $array = Array(); while($result = $query->fetch_assoc()){ $array[] = $result['step1']; } print_r($array); 当前输出:数组[0]=>1[1]=>2[2]=>52[3]=>10 如何查找

我有以下创建数组的代码:

$query = $conn->query("select step1 FROM workflow1 ORDER BY id DESC limit 4;");

$array = Array();
while($result = $query->fetch_assoc()){
    $array[] = $result['step1'];
}

print_r($array);
当前输出:数组[0]=>1[1]=>2[2]=>52[3]=>10

如何查找数组值的百分比变化?i、 我想要的是

期望输出:1-2/2->-50%,2-52/52->-96.15%,依此类推。我将把它放在html表格中。

试试这个:

$datas = array( 0 => 1 ,1 => 2, 2 => 52 ,3 => 10 );

$output= array();

foreach ($datas as $key=>$value){
    $output[]= (($key-$value)/$value)*100;
}

print_r($output);
这是输出:

数组[0]=>-100[1]=>-50[2]=>-96.153846153846[3]=>-70

试试这个:

$array = [1, 2, 52, 10];
$change = [];
foreach($array as $key=>$value){
  if(count($array) - 1 > $key) {
    $prev = $array[$key];
    $next = $array[++$key];    
    $percent_key = "((".$prev."-".$next.")/".$next.")";    
    $percent_value = (($prev-$next)/$next)*100;
  }
 $change[$percent_key] = $percent_value;
}
print_r($change);
输出:

数组[1-2/2]=>-50[2-52/52]=>-96.153846153846[52-10/10]=>420


你有没有试着自己写点什么?顺便说一句,一些数据库为您提供了此功能…我有另一个查询:选择x.id,x.step1,x.step1/y.step1-1*100作为“更改\u 1”,从选择a.id作为辅助,MAXb.id作为aPrevid来自工作流1 a内部联接工作流1 b,其中a.id>b.id按a.id Sub1分组内部联接工作流1 x在Sub1.aid=x.id内部联接工作流1 y在Sub1.aPrevid=y.id按x.id描述排序,直接给出percemtage。Plz帮助我如何将其输出存储在阵列中。是的,这就是我要寻找的,但我没有得到-100和-70是如何得到的结果。从数据库查询结果是:-50,-96.153846153844616420和-80.769230769223077。我认为-100是第一个的结果:0-1/1*100=-1*100=-100-70===>3-10/10*100=7/10*100=0.7*100=70这是错误的?只需再查询一次,因为键会发生变化,我如何打印数组中的第一个值,比如50?我可以获取值并使用代码打印,其中0是第一个元素:此外,您可以使用多维数组,如:$change[key]=$percent\u key$更改[值]=$percent\u值$输出[]=$change;打印r$输出[0][值];好的,谢谢你,但是上面的单行代码做了一个理智的把戏,所以我将使用它作为我把它放在TD标签中的一个例子。