Saturday 15 May 2010

php - Sum array value regarding column name in multidimentional array -



php - Sum array value regarding column name in multidimentional array -

below array have format array according name in [c] index

// $name = $array[result][0][_id][c];

i want sum info regarding name (ex:maharashtra & goa) pl value

array ( [result] => array ( [0] => array ( [_id] => array ( [c] => maharashtra & goa [d] => mongodate object ( [sec] => 1412746200 [usec] => 0 ) ) [pl] => 107369655 ) [1] => array ( [_id] => array ( [c] => unknown [d] => mongodate object ( [sec] => 1412659800 [usec] => 0 ) ) [pl] => 69356849 ) [2] => array ( [_id] => array ( [c] => maharashtra & goa [d] => mongodate object ( [sec] => 1412832600 [usec] => 0 ) ) [pl] => 22320916 ) [3] => array ( [_id] => array ( [c] => unknown [d] => mongodate object ( [sec] => 1412746200 [usec] => 0 ) ) [pl] => 8397870 ) [4] => array ( [_id] => array ( [c] => bihar & jharkhand [d] => mongodate object ( [sec] => 1412746200 [usec] => 0 ) ) [pl] => 4278330 ) [5] => array ( [_id] => array ( [c] => unknown [d] => mongodate object ( [sec] => 1412832600 [usec] => 0 ) ) [pl] => 4183450 ) [6] => array ( [_id] => array ( [c] => tamil nadu [d] => mongodate object ( [sec] => 1412832600 [usec] => 0 ) ) [pl] => 4113634 ) [7] => array ( [_id] => array ( [c] => maharashtra & goa [d] => mongodate object ( [sec] => 1412487000 [usec] => 0 ) ) [pl] => 3716731 ) [8] => array ( [_id] => array ( [c] => maharashtra & goa [d] => mongodate object ( [sec] => 1412659800 [usec] => 0 ) ) [pl] => 1203054 ) [9] => array ( [_id] => array ( [c] => unknown [d] => mongodate object ( [sec] => 1412573400 [usec] => 0 ) ) [pl] => 554806 ) ) [ok] => 1 )

// desired array // pl sum of name

array ( [0] => array ( [name] => maharashtra & goa [pl] => 134610356 ) [1] => array ( [name] => unknown [pl] => 82492975 ) [2] => array ( [name] => bihar & jharkhand [pl] => 4278330 ) [3] => array ( [name] => tamil nadu [pl] => 4113634 ) )

you utilize name index grouping values , add together them.

example:

foreach ($array['result'] $value) { if(!isset($resultdata[$value['_id']['c']])) { // initialize $resultdata[$value['_id']['c']] = array('name' => $value['_id']['c'], 'pl' => 0); } $resultdata[$value['_id']['c']]['pl'] += $value['pl']; // sum them } $resultdata = array_values($resultdata); // simple reindex echo '<pre>'; print_r($resultdata);

php arrays

No comments:

Post a Comment