/**
* [dimension 按字段大小排序数组 ]
* @param arrays 需要排序的数组
* @return [type] [description]
*/
function my_sort($arrays,$sort_key,$sort_order=SORT_DESC,$sort_type=SORT_NUMERIC ) { if(is_array($arrays)){ foreach ($arrays as $array){ if(is_array($array)){ $key_arrays[] = $array[$sort_key]; }else{ return false; } } }else{ return false; } array_multisort($key_arrays,$sort_order,$sort_type,$arrays); return $arrays; }
/**
* [dimension 移除空值的key ]
* @param array $array [description]
* @return [type] [description]
*/
function arrayFilter($para)
{
$paraFilter = [];
while (list($key, $val) = each($para)) {
if ($val === '' || $val === null) {
continue;
} else {
if (!is_array($para[$key])) {
$para[$key] = is_bool($para[$key]) ? $para[$key] : trim($para[$key]);
}
$paraFilter[$key] = $para[$key];
}
}
return $paraFilter;
}
/**
* [dimension 判断数组维度]
* @param array $array [description]
* @return [type] [description]
*/
public static function dimension(array $array): int
{
return count($array) == count($array, 1) ? 1 : 2;
}
/**
* 删除一位数组中,指定的key与对应的值
* @param array $array 要操作的数组
* @param array|string $keys 需要删除的key的数组,或者用(,)链接的字符串
* @return array
*/
public static function removeKeys(array $array, $keys)
{
if (!is_array($keys)) {// 如果不是数组,需要进行转换
$keys = explode(',', $keys);
}
if (empty($keys) || !is_array($keys)) {
return $array;
}
$flag = true;
foreach ($keys as $key) {
if (array_key_exists($key, $array)) {
if (is_int($key)) {
$flag = false;
}
unset($array[$key]);
}
}
if (!$flag) {
$array = array_values($array);
}
return $array;
}
/**
* 对输入的数组进行字典排序
* @param array $array 需要排序的数组
* @return array
*/
public static function arraySort(array $array)
{
ksort($param);
reset($param);
return $param;
}
/**
* 把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串
* @param array $array 需要拼接的数组
* @return string
* @throws \Exception
*/
public static function createLinkstring($array)
{
if (!is_array($array)) {
throw new \Exception('必须传入数组参数');
}
reset($array);
$arg = '';
while (list($key, $val) = each($array)) {
if (is_array($val)) {
continue;
}
$arg .= $key . '=' . urldecode($val) . '&';
}
//去掉最后一个&字符
$arg && $arg = rtrim($arg, '&');
//如果存在转义字符,那么去掉转义
if (get_magic_quotes_gpc()) {
$arg = stripslashes($arg);
}
return $arg;
}
/**
* [arr2DTo1D 二维数组转一维]
* @param [type] $data [description]
* @param [type] $char [description]
* @param integer $type [description]
* @return [type] [description]
*/
public static function arr2DTo1D($data, $char, $type = 1)
{
$arr = array();
foreach ($data as $key=> $value) {
$arr[] = $value[$char];
}
if($type == 1) $arr = array_unique($arr);
return $arr;
}
public static function arr2DUnique($data, $char): array
{
$r_data = [];
if (empty($data)) return $data;
$check = [];
foreach ($data as $key => $value) {
if (in_array($value[$char], $check)) continue;
array_push($r_data, $value);
array_push($check, $value[$char]);
}
return $r_data;
}