 <p>You are using static method for custom sorting, so you can set some static properties in this class before <code>usort</code></p> <pre><code>class Catalogs_model{ public static $usort_criteria = array(); public static function multi_compare($a,$b){ foreach(self::$usort_criteria as $what =&gt; $order){ if($a[$what] == $b[$what]){ continue; } return (($order == 'desc')?-1:1) * strcmp($a[$what], $b[$what]); } return 0; } } Catalogs_model::$usort_criteria = array( 'con' =&gt; 'asc', 'title' =&gt; 'asc' ); usort($arrCatalog, array('Catalogs_model', 'multi_compare')); </code></pre> <p>of course it needs some tweaking , because now it only sorts strings.</p>