download this file: func.array.php view text/plain: func.array.php file encoding: UTF-8 [goback]
<?php
##
## download server monitoring tools
## support FreeBSD 4.x
##
## [author]
##   - san2(at)linuxchannel.net
##
## [changes]
##  - 2010.04.20 : add array_avg()
##  - 2004.02.03 : new build
##

## $array sort/rsort by user $cmp array
##
function array_usort(&$array$cmp$reverse=0)
{
  if(
$reverse) @arsort($cmp);
  else @
asort($cmp);

  
$cmp = @array_keys($cmp);
  
$size sizeof($cmp);

  for(
$i=0$i<$size$i++)
  {
    
$key = &$cmp[$i];
    
$newarr[] = &$array[$key];
  }

  
$array = array(); // reset, don't work unset($array);
  
$array $newarr// change
  
unset($newarr);

  return 
$array;
}

## $array asort/arsort by user $cmp array
##
function array_uasort(&$array$cmp$reverse=0)
{
  if(
$reverse) @arsort($cmp);
  else @
asort($cmp);

  
$cmp = @array_keys($cmp);
  
$size sizeof($cmp);

  for(
$i=0$i<$size$i++)
  {
    
$key = &$cmp[$i];
    
$newarr[$key] = &$array[$key];
  }

  
$array = array(); // reset, don't work unset($array);
  
$array $newarr// change
  
unset($newarr);

  return 
$array;
}

## $array ksort/krsort by user $cmp array
##
function array_uksort(&$array$cmp$reverse=0)
{
  if(
$reverse) @krsort($cmp);
  else @
ksort($cmp);

  
$cmp = @array_keys($cmp);
  
$size sizeof($cmp);

  for(
$i=0$i<$size$i++)
  {
    
$key = &$cmp[$i];
    
$newarr[$key] = &$array[$key];
  }

  
$array = array(); // reset, don't work unset($array);
  
$array $newarr// change
  
unset($newarr);

  return 
$array;
}

function 
array_count_all($arr)
{
  if(!
is_array($arr)) return 0;

  return (int)(
sizeof($arr,COUNT_RECURSIVE) - sizeof($arr));
}

function 
array_avg($arr)
{
  if(!
is_array($arr)) return 0;

  
$size sizeof($arr);
  
$total array_sum($arr);

  return (
$size>0) ? (int)($total/$size) : 0;
}

?>