What I'm going to do first is change th format a bit. Instead of
$array = array(
array( 'name' => 'John', 'money'=>5),
array( 'name' => 'Jack', 'money'=>10),
array( 'name' => 'John', 'money'=>3)
);
I'll have
$people = array(
'John' => array(5, 3),
'Jack' => array(10),
);
$people = array();
foreach($array as $name_and_money)
{ $name = $name_and_money['name'];
$money = $name_and_money['money'];
$people[$name][] = $money;
}
Now it's easy to add all the monies up for each person - replacing the array of monies with its sum:
foreach($people as $key=>$person)
{ $people[$key] = array_sum($person);
}
And then to convert back to the existing format
$array = array();
foreach($people as $name=>$money)
{ $array[] = array('name'=>$name, 'money'=>$money);
}