: : g_ARRAYFUNCTIONS

Různé užitečné funkce pro práci s řetězci:
ArKeysToLower($ar) Funkce vrací řetězec $ar ve kterém jsou zdvojeny všechny klíče s malými písmeny.
RepairCzechLanguage($arstr) Funkce opraví $arstr (array či string) a nahradí špatnou češtinu z ISO na WIN1250.
MergeTwoArrays($ar1,$ar2,$over=0) Funkce vrátí řetězec spojením řetězců $ar1 a $ar2. Pokud je zadána hodnota $over, jsou klíče v řetězci $ar2 doplněni o $over na svůj začátek.
ShowArray($ar) Funkce vrátí string, ve kterém jsou rozepsány klíče a hodnoty řetězce $ar.
TestGLOBALSbyArray($ar) Funkce vrátí True pokud alespoň jedna z hodnot v řetězci $ar je v řetězci $GLOBALS.
ReturnRandomFromArray($arr) Funkce vrátí jeden prvek z řetězce $arr, pokud je $arr prázdný vratí prázdný řetězec.

Kód:
g_arrayfunctions.php
<? /* ARRAY FUNCTIONS */
$g_arrayfunctions_true = true;

function ArKeysToLower($ar) {
  if (is_array($ar)) {
    reset($ar);
    while(list($k,$h)=each($ar)) {
      if (!is_array($h)) {
        $ar[strtolower($k)] = $h;        
      } else {
        $ar[strtolower($k)] = ArKeysToLower($h);
      }
    }
  }
  return $ar;
}

function RepairCzechLanguage($arstr) {
  if (is_array($arstr)) {
    reset($arstr);
    while(list($k,$h)=each($arstr)) {
      $h=RepairCzechLanguage($h);
      $arstr[$k]=$h;
    }
  } else {
    $arstr=StrTr($arstr, "\xA9\xAB\xAE\xB9\xBB\xBE", "\x8A\x8D\x8E\x9A\x9D\x9E");
  }
  return $arstr;
}

function MergeTwoArrays($ar1,$ar2,$over=0) {
  reset($ar2);
  while (list($k,$h)=each($ar2)) {
    if(empty($over)) $ar1[$k] = $h;
    else $ar1[$over.$k] = $h;
  }
  return $ar1;
}

function ShowArray($ar) {
  if (is_array($ar)) {
    reset($ar);
    $ret_str = 'Count: '.count($ar)."\n";
    while(list($k,$h) = each($ar)) {
      $ret_str .= $k.': '.$h."\n";
    }
    return $ret_str;
  } else
    return $ar;
}

function TestGLOBALSbyArray($ar) {
  reset($ar);
  while(list(,$h)=each($ar)) {
    if (isset($GLOBALS[$h])) return true;
  }
  return false;
}

function ReturnRandomFromArray($arr) {  
  $randar = array();
  reset($arr);
  while(list(,$hod)=each($arr)) {
    $randar[count($randar)] = $hod;
  }  
  if (count($randar)>1) {
    $r = rand(0,count($randar)-1);
    while(empty($randar[$r])) {
      $r = rand(0,count($randar)-1);
    }
    return $randar[$r];
  } else
  if (count($randar)==1) return $randar[0];
  else
    return array();
}

?>