代码之家  ›  专栏  ›  技术社区  ›  streetparade

获取更改百分比

  •  0
  • streetparade  · 技术社区  · 15 年前

    我怎样才能得到所发生的变化的百分比?

    喜欢

     1. date    1343360810     objectId 1628
        field 10 value 3
     1. date    1242360811     objectId 1628
        field 10 value 5
     1. date    1243364812     objectId 1628
        field 10 value 5
     1. date    1240360814     objectId 1628
        field 10 value 5
    

    这意味着在4个对象中ben值已经改变了1次。 这将导致25%的百分比。

    我的问题是如何在PHP中做到这一点。

    我有这样的东西。

      [69]=>
      object(stdClass)#92 (6) {
        ["id"]=>
        string(7) "1824709"
        ["objectId"]=>
        string(4) "1628"
        ["type"]=>
        string(1) "0"
        ["field"]=>
        string(2) "10"
        ["value"]=>
        string(1) "3"
        ["date"]=>
        string(10) "1243360814"
      }
    
    [70]=>
      object(stdClass)#93 (6) {
        ["id"]=>
        string(7) "1826225"
        ["objectId"]=>
        string(4) "1628"
        ["type"]=>
        string(1) "0"
        ["field"]=>
        string(2) "10"
        ["value"]=>
        string(1) "0"
        ["date"]=>
        string(10) "1243360814"
      }
    
    1 回复  |  直到 15 年前
        1
  •  2
  •   Kaivosukeltaja    15 年前

    迭代对象数组,并在值更改时保持跟踪。像这样的事情应该可以:

    $oldvalue = false; // This is to exclude the first value from registering as a change
    $changes = 0;
    foreach($object_array as $obj) {
      if($oldvalue !== false && $obj->value != $oldvalue)
        $changes++;
      $oldvalue = $obj->value;
    }
    $change_percentage = $changes / count($object_array) * 100;