code.fastix.org

Dateiansicht:

Datei:Projekte -> PHP:class Dir2Array -> lib -> sort_2D_hash.php
md5:0d70e978b43032fc38f21ce4671b5990
sha1:c726a430e727b48d674fc92b0146a254faac0cd3
  1. <?php
  2. function sort_2D_hash($hash, $sortKey, $sortMethod = SORT_REGULAR) {
  3.  
  4.     /*
  5.         Fehlerprüfungen
  6.     */
  7.  
  8.     $sortAllowed=array(
  9.         SORT_REGULAR,
  10.         SORT_NUMERIC,
  11.         SORT_STRING,
  12.         SORT_LOCALE_STRING,
  13.         SORT_NATURAL,
  14.         ( SORT_STRING | SORT_FLAG_CASE ),
  15.         ( SORT_NATURAL | SORT_FLAG_CASE )
  16.     );
  17.  
  18.     if (! is_array($hash) ) {
  19.          trigger_error(' function : sort_2D_hash : Es wurde kein Array übergeben', E_USER_ERROR);
  20.          exit;
  21.     }
  22.  
  23.     $gueltig = true;
  24.     $originalKeys = array_keys($hash);
  25.  
  26.     foreach ( $originalKeys as $key) {
  27.         if ($gueltig and 'string' != gettype($sortKey) ) {
  28.             trigger_error(' function : sort_2D_hash : Einer der Schlüssel des Hashes (' . $key . ') ist kein String. Die Funktion sort_2D_hash ist nicht verwendbar.', E_USER_NOTICE);
  29.             $gueltig = false;
  30.         }
  31.     }
  32.  
  33.  
  34.     if ( ! isset( $hash, $sortKey ) ) {
  35.          trigger_error(' function : sort_2D_hash : Der Sortierschlüssel (' . $sortKey . ') existiert nicht im Hash', E_USER_NOTICE);
  36.          return false;
  37.     }
  38.  
  39.     if ( ! in_array( $sortMethod, $sortAllowed, 1 ) ) {
  40.          trigger_error(' function : sort_2D_hash : Die übergebene Sortiermethode (' . $sortMethod . ') ist ungültig', E_USER_ERROR);
  41.          exit;
  42.     }
  43.  
  44.  
  45.     /*
  46.         Aktion
  47.     */
  48.  
  49.     foreach($originalKeys as $key) {  $hilfsArray[$key] = $hash[$key][$sortKey];  }
  50.  
  51.     asort ( $hilfsArray, $sortMethod );
  52.     $returnHash=array();
  53.  
  54.     foreach(array_keys($hilfsArray) as $key) { $returnHash[$key] = $hash[$key];  }
  55.  
  56.     return $returnHash;
  57. }