On Mon, 12 Feb 2007 18:43:26 +0100, Chuy08 <ch****@yahoo.comwrote:
If I have a multidimensional array like the following:
Array
$records =Array
0 =[Product] 30 year, [Rate]6.0;
1 =[Product] 30 year, [Rate]6.0;
2 =[Product] Pay Option, [Rate]1.0;
3 =[Product] Pay Option, [Rate]1.0;
How could I flatten this to achieve an array that only has unique Product
values, basically removing $records['1] and $records['3'] in this
example?
Why does you example not contain a multidimensional array? This one is
handled just fine by array_unique()...
You probably mean:
$records = array(
array('product' ='30 year','rate'=6.0),
array('product' ='30 year','rate'=6.0),
array('product' ='Pay option','rate'=1.0),
array('product' ='Pay option','rate'=1.0));
Quite some overhead, but workable (even preserves keys):
<?php
function array_unique_multi($array){
$copy = $array;
array_walk($array,create_function('&$v,$k','$v = serialize($v);'));
$array = array_unique($array);
return array_intersect_key($copy,$array);
}
?>
Be carefull not to have unserializable content in the array.
--
Rik Wasmus