Actually, the code you're using should work; that is, it should be altering the original array. If it doesn't "seem" to update, something else is wrong.
As Eric said, (with PHP5) you can also reference the array:
foreach ($consumers as &$consumer) {
if ($consumer['transstatus'] == 'OK') {
$consumer['transstatus'] = 'Payment Successful';
}
}