php二维数组排序+字符串截取函数
来源:互联网 发布:sha算法 编辑:程序博客网 时间:2024/06/10 09:37
整理了两个函数,记录下来
/**
* 对二维数组排序进行一个封装* @param unknown_type $dataArray 要排序的数组
* @param unknown_type $sortInfoArray 排序信息数组,可以多个组合,格式如下:
* array(
array(
'sortKey'=>'name', 'sortOrder'=>'SORT_ASC', 'sortType'=>'SORT_STRING'
), array(
'sortKey'=>'size', 'sortOrder'=>'SORT_DESC', 'sortType'=>'SORT_STRING'
)
);
* sortKey:$dataArray要用于排序的列名,
* sortOrder:SORT_ASC - 按照上升顺序排序/SORT_DESC - 按照下降顺序排序
* sortType:SORT_REGULAR - 将项目按照通常方法比较/SORT_NUMERIC - 将项目按照数值比较/SORT_STRING - 将项目按照字符串比较
* @throws Exception
* @return unknown
*/
function array_multisort_crm ($dataArray, $sortInfoArray)
{
if (empty($sortInfoArray)||!is_array($sortInfoArray)) {
throw new Exception('array_multisort_crm 函数的第二个参数格式出错');
}
foreach ($sortInfoArray as $sortArr) {
if (!array_key_exists('sortKey', $sortArr)) {
throw new Exception('array_multisort_crm 函数的第二个参数格式出错');
}
$sortRule[$sortArr['sortKey']] = '$'.$sortArr['sortKey'];
if (array_key_exists('sortOrder', $sortArr)) {
$sortRule[$sortArr['sortKey']] .= ','.$sortArr['sortOrder'];
}
if (array_key_exists('sortType', $sortArr)) {
$sortRule[$sortArr['sortKey']] .= ','.$sortArr['sortType'];
}
}
foreach ($dataArray as $key => $vArr) {
foreach ($sortInfoArray as $sortArr) {
${$sortArr['sortKey']}[$key] = $vArr[$sortArr['sortKey']];
}
}
$evalString = 'array_multisort('.implode(',', $sortRule).',$dataArray);';
eval($evalString);
return $dataArray;
}
/**
* 字符串截取,支持中文和其他编码
*
* @param string $str 需要转换的字符串
* @param string $start 开始位置
* @param string $length 截取长度
* @param string $charset 编码格式
* @param string $suffix 截断字符串后缀
* @return string
*/
/**
* 字符串截取,支持中文和其他编码,如果截取后的字符串是原来字符串尾部,则不加再加上$suffix
* @param unknown_type $str 需要转换的字符串
* @param unknown_type $start 开始位置
* @param unknown_type $length 截取长度
* @param unknown_type $suffix 截断字符串后缀
* @param unknown_type $charset 编码格式
* @return string
*/
function substr_ext($str, $start, $length, $suffix="", $charset="utf-8")
{
$slice = '';
if(function_exists("mb_substr")){
echo "mb_substr<br>";
$slice = mb_substr($str, $start, $length, $charset);
}
elseif(function_exists('iconv_substr')){
$slice = iconv_substr($str,$start,$length,$charset);
}
else
{
$re['utf-8'] = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/";
$re['gb2312'] = "/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/";
$re['gbk'] = "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/";
$re['big5'] = "/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/";
preg_match_all($re[$charset], $str, $match);
$slice = join("",array_slice($match[0], $start, $length));
}
if (!preg_match("/({$slice})$/", $str)) {
$slice = $slice.$suffix;
}
return $slice;
}
- php二维数组排序+字符串截取函数
- PHP二维数组排序函数
- php二维数组排序函数
- PHP二维数组排序函数
- PHP二维数组排序函数
- PHP二维数组排序函数
- PHP二维数组排序函数
- PHP二维数组排序函数
- PHP二维数组排序函数
- PHP二维数组排序函数
- PHP二维数组排序函数
- PHP二维数组排序函数
- php二维数组排序函数
- 利用PHP函数进行二维数组排序
- 一个PHP二维数组排序的函数
- PHP 的二维数组排序函数
- PHP二维数组排序的函数
- php 二维数组排序算法函数
- 学习GNU Emacs命令速查表(四)
- 觉得做人累了就看看这些!不是社会错了,是你错了... - Qzone日志
- Android图形---Graphics(概要)
- 基于FPGA的重采样时钟生成方法
- 三层架构中Model层的作用?
- php二维数组排序+字符串截取函数
- 一些有用的软件,How to Transfer PuTTY Sessions To Another Windows Machine, smtp4dev
- 大一,编程一年之感悟
- Android ApiDemos示例解析(16):App->Activity->Translucent
- C++利用宏实现反射和运行时类型检测
- 【J2ME】KUIX框架——添加自定义的属性
- 客户程序调用ATL COM组件
- 关于同步android源码Exited sync due to fetch errors的问题
- 接近开关和欧姆龙的PLC怎么接线?