public static function dump($data, $die = false) { parent::dump($data, 10, true); echo '<br/>'; if ($die) { die; } }
/** * 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); }