bez przesady. pierwsza z brzegu:
<?php
function array_distinct ($array, $group_keys, $sum_keys = NULL, $count_key = NULL){
$existing_sub_keys = array ();
foreach ($array as $key => $sub_array){
$puffer = NULL;
#group keys
foreach ($group_keys as $group_key){
$puffer .= $sub_array[$group_key];
}
if (!in_array ($puffer, $existing_sub_keys)){ $existing_sub_keys[$key] = $puffer;
$output[$key] = $sub_array;
}
else{
#sum keys
foreach ($sum_keys as $sum_key){
if (is_string ($sum_key)) $output[$puffer][$sum_key] += $sub_array[$sum_key]; }
#count grouped keys
if (!array_key_exists ($count_key, $output[$puffer])) $output[$puffer][$count_key] = 1; if (is_string ($count_key)) $output[$puffer][$count_key]++; }
}
return $output;
}
//uzycie:
$array[0]['subjects'] = 1;
$array[0][0] = 1;
$array[1]['subjects'] = 2;
$array[1][0] = 2;
$array[2]['subjects'] = 3;
$array[2][0] = 3;
$array[3]['subjects'] = 3;
$array[3][0] = 3;
$array = array_distinct
($array, array('subjects'));
?>
nastepnym razem szukaj lepiej, bo mogą się warny posypac za lenistwo