2009-10-27 93 views
0

我如何獲得發生變化的百分比?獲取變化的百分比

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級的對象改變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" 
    } 
+0

你可以請格式化一下這個問題嗎?你需要使用PHP來做到這一點,或者你是否從數據庫中獲取信息? –

+0

我從數據庫中獲取它。是的,我需要在PHP – streetparade

+0

中執行此操作,只要最後一個值不等於當前值,就循環執行數據計數。之後,你得到它:變化/數量* 100. – jantimon

回答

2

迭代對象數組,並在值更改時保持跟蹤。像這樣的事情應該這樣做:

$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; 
+0

你在哪裏得到$ change_percentage = $ changes/count($ objects)* 100; $ objects?或者它是$ object_array或$ obj? – streetparade

+0

你從哪裏得到物體? – streetparade

+0

在這個例子中,$ object_array最初被命名爲$ objects,爲了清楚起見我將其重命名,但忘記更改最後一行。修好了,謝謝你的提高! – Kaivosukeltaja