Exemplo n.º 1
0
 public static function dump($data, $die = false)
 {
     parent::dump($data, 10, true);
     echo '<br/>';
     if ($die) {
         die;
     }
 }
Exemplo n.º 2
0
 /**
  * Sorts an array of objects or arrays (with the same structure) by one or several keys.
  * @param array $array the array to be sorted. The array will be modified after calling this method.
  * @param string|\Closure|array $key the key(s) to be sorted by. This refers to a key name of the sub-array
  * elements, a property name of the objects, or an anonymous function returning the values for comparison
  * purpose. The anonymous function signature should be: `function($item)`.
  * To sort by multiple keys, provide an array of keys here.
  * @param integer|array $direction the sorting direction. It can be either `SORT_ASC` or `SORT_DESC`.
  * When sorting by multiple keys with different sorting directions, use an array of sorting directions.
  * @param integer|array $sortFlag the PHP sort flag. Valid values include
  * `SORT_REGULAR`, `SORT_NUMERIC`, `SORT_STRING`, `SORT_LOCALE_STRING`, `SORT_NATURAL` and `SORT_FLAG_CASE`.
  * Please refer to [PHP manual](http://php.net/manual/en/function.sort.php)
  * for more details. When sorting by multiple keys with different sort flags, use an array of sort flags.
  * @throws InvalidParamException if the $direction or $sortFlag parameters do not have
  * correct number of elements as that of $key.
  */
 public static function multisort(&$array, $key, $direction = SORT_ASC, $sortFlag = SORT_REGULAR)
 {
     $keys = is_array($key) ? $key : [$key];
     if (empty($keys) || empty($array)) {
         return;
     }
     $n = count($keys);
     if (is_scalar($direction)) {
         $direction = array_fill(0, $n, $direction);
     } elseif (count($direction) !== $n) {
         throw new InvalidParamException('The length of $direction parameter must be the same as that of $keys.');
     }
     if (is_scalar($sortFlag)) {
         $sortFlag = array_fill(0, $n, $sortFlag);
     } elseif (count($sortFlag) !== $n) {
         throw new InvalidParamException('The length of $sortFlag parameter must be the same as that of $keys.');
     }
     $args = [];
     foreach ($keys as $i => $key) {
         $flag = $sortFlag[$i];
         $args[] = static::getColumn($array, $key);
         $args[] = $direction[$i];
         $args[] = $flag;
     }
     //array_map("self::detachBehaviors", $array);
     //call_user_func_array('detachBehaviors', $array);
     /*
     foreach ($array as $model) {
         $model->detachBehaviors();
     }
     */
     BaseVarDumper::dumpAsString($array, 2);
     $args[] =& $array;
     //print_pre(BaseVarDumper::dumpAsString( end(array_values($args)), $depth = 1), ' test') ;
     //print_r($args, true);
     //print_pre(BaseVarDumper::dumpAsString($args, $depth = 3),'test');
     //die('test');
     call_user_func_array('array_multisort', $args);
 }