Some user interface changes.
[squirrelmail.git] / functions / array.php
index b59f21c960e76612ae1fa8cb32c3881319c32bb2..e7d8237cf0df466e5b4cc0406e26b88c144ff610 100644 (file)
@@ -1,45 +1,49 @@
 <?php
    /**
-    * array.php
-    **
-    * This contains functions that work with array manipulation.  They
-    * will help sort, and do other types of things with arrays
-    **
-    **  $Id$
-    **/
+    * array.php
+    *
+    * This contains functions that work with array manipulation.  They
+    * will help sort, and do other types of things with arrays
+    *
+    *  $Id$
+    */
 
-   $array_php = true;
+   if (defined ('array_php'))
+       return; 
+   define ('array_php', true); 
 
    function ary_sort($ary,$col, $dir = 1){
       // The globals are used because USORT determines what is passed to comp2
       // These should be $this->col and $this->dir in a class
       // Would beat using globals
       if(!is_array($col)){
-         $col = array("$col");
+         $col = array($col);
       }
-      $GLOBALS["col"] = $col;  // Column or Columns as an array
-      $GLOBALS["dir"] = $dir;  // Direction, a positive number for ascending a negative for descending
+      $GLOBALS['col'] = $col;  // Column or Columns as an array
+      if ($dir > 0)
+          $dir = 1;
+      else
+          $dir = -1;
+      $GLOBALS['dir'] = $dir;  // Direction, a positive number for ascending a negative for descending
 
-      usort($ary,'comp2');
+      usort($ary,'array_comp2');
       return $ary;
   }
 
-  function comp2($a,$b,$i = 0) {
+  function array_comp2($a,$b,$i = 0) {
          global $col;
          global $dir;
          $c = count($col) -1;
-         if ($a["$col[$i]"] == $b["$col[$i]"]){
+         if ($a[$col[$i]] == $b[$col[$i]]){
             $r = 0;
             while($i < $c && $r == 0){
                $i++;
                $r = comp2($a,$b,$i);
             }
-         } elseif($a["$col[$i]"] < $b["$col[$i]"]){
-            $r = -1 * $dir; // Im not sure why you must * dir here, but it wont work just before the return...
-         } else {
-            $r = 1 * $dir;
-         }
-         return $r;
+         } elseif($a[$col[$i]] < $b[$col[$i]]){
+            return (- $dir);
+         } 
+        return $dir;
       }
 
    function removeElement($array, $element) {
@@ -58,7 +62,7 @@
     $key=0;
     $array2 = array();
     while ($key < count($array1)) {
-        array_push($array2, $array1[$key]["$column"]);
+        array_push($array2, $array1[$key][$column]);
         $key++;
     }