Прошу прощения что влез в чужой топик, но уж больно тема схожая
//-----------Массив-----------
Массив передающийся в ф-цию имеет вид
- [Id док-та][имя док-та]....
[1]
[Id док-та][имя док-та]....и т.д.
.......................................
А вот вернуть надо массивчик отсортированный в порядке убывания по количеству встречающихся одинаковых записей...
//-----------Ф-ция------------
function endarr($initarrf)
{
$tmp1[0]=$initarrf[0]["Doc_ID"]; //формируем чего-то типа списка присутсвующих ID документов
$i=0;
foreach($initarrf as $rowarr)
foreach($rowarr as $key=>$val)
if(($key=="Doc_ID")&!in_array($val,$tmp1))
{
$i++;
$tmp1[$i]=$val;
}
foreach($tmp1 as $val) $tmp[$val]=0; //Формируем количество одинаковых по ID документов
foreach($initarrf as $rowarr)
foreach($rowarr as $key=>$val)
if($key=="Doc_ID")
if (array_key_exists($val, $tmp))
{
$tmp[$val]=$tmp[$val]+1;
}
arsort($tmp); // Сортируем их по убыванию
$i=0;
foreach($tmp as $key=>$val)
{
$k=array_search($key,$k); // <-
(ВОПРОС)Как бы извлечь ключ по значению?
$countarrf[$key]["Doc_full_name"]=$initarrf[$k]["Doc_full_name"];
$countarrf[$key]["count"]=$val;
$countarrf[$key]["Phys_way"]=$initarrf[$k]["Phys_way"];
$i++;
}
return $countarrf;
}