Based on your comment, you should be using a combination of keys or values if you want to do this with multi dimensional arrays (which I'm not sure is the best way, but can't say w/o further context).
$people = array(
"john" => array()
);
Then when you want to add products, just go like:
$people["john"]["couch"] = 3; // bought 3 times.
$people["john"][$item] = 0; // if you don't know the count yet for whatever reason. You can always chagne it later the same way.
Now:
foreach( $people as $person => $purchases ){
echo UCFirst( $person );
if( ! empty( $purchases ) ){
echo ' has bought:<br />';
foreach( $purchases as $item => $qty ){
echo $item.' ('.$qty.')<br />';
}
}
}
I would recommend always making your keys either uppercase or lowercase if you are going to use named. Your call though.
If you give us more code / context, there may be much better ways to do this stuff.
array('John' => array(), 'Kim' => array())?