You could just use plain ol' foreach on this one, and build it on a new array. Consider this example:
$values = array(
0 => array('order_id' => '257', 'price' => '20.3600'),
1 => array('order_id' => '256', 'price' => '20.5500'),
2 => array('order_id' => '255', 'price' => '30.0000'),
3 => array('order_id' => '255', 'price' => '22.3800'),
4 => array('order_id' => '254', 'price' => '20.6300'),
);
$new_values = array();
foreach($values as $key => $value) {
$new_values[$value['order_id']]['order_id'] = $value['order_id'];
// initialize price
if(!isset($new_values[$value['order_id']]['price'])) $new_values[$value['order_id']]['price'] = 0;
$new_values[$value['order_id']]['price'] += $value['price'];
}
$new_values = array_values($new_values); // reindex the array
print_r($new_values); // print