php将二维数组转为key为下标

超级小帅 发表了文章 • 0 个评论 • 2300 次浏览 • 2017-08-22 10:50 • 来自相关话题

php将二维数组转为key为下标
 /**
* 将二维数组 转为 key =>
* @param $array
* @param string $key string or string 二维中的键值
* @param string $valuekey 非空:二维中key 的元素
* @return array
*/
static function array_set_key($array, $key = '', $valuekey = '')
{
$return = array();
while (list($k, $v) = each($array)) {
if ($key == '') {
$return = ($valuekey != '' ? $v[$valuekey] : $v);
} else {
if (is_array($key)) {

$indexkey = "";
foreach ($key as $kk) {
$indexkey .= $v[$kk] . "_";
}
$indexkey = trim($indexkey, '_');
} else
$indexkey = $v[$key];

$return[$indexkey] = ($valuekey != '' ? $v[$valuekey] : $v);
}
}
reset($array);
return $return;
} 查看全部
php将二维数组转为key为下标
 
/**
* 将二维数组 转为 key =>
* @param $array
* @param string $key string or string 二维中的键值
* @param string $valuekey 非空:二维中key 的元素
* @return array
*/
static function array_set_key($array, $key = '', $valuekey = '')
{
$return = array();
while (list($k, $v) = each($array)) {
if ($key == '') {
$return = ($valuekey != '' ? $v[$valuekey] : $v);
} else {
if (is_array($key)) {

$indexkey = "";
foreach ($key as $kk) {
$indexkey .= $v[$kk] . "_";
}
$indexkey = trim($indexkey, '_');
} else
$indexkey = $v[$key];

$return[$indexkey] = ($valuekey != '' ? $v[$valuekey] : $v);
}
}
reset($array);
return $return;
}

php将多为数组中的某一个元素作为键名

超级小帅 发表了文章 • 0 个评论 • 2035 次浏览 • 2017-08-22 10:47 • 来自相关话题

php将多为数组中的某一个元素作为键名
 
/*
* 将多为数组中的某一个元素作为键名 健值必须唯一
* $array = array(0=>array('id'=>10,'title'=>'t10'),1=>array('id'=>11,'title'=>'t11'));
* $array = array_set_key($array, 'id');
* array(10=>array('id'=>10,'title'=>'t10'),11=>array('id'=>11,'title'=>'t11'));
*/
static function array_set_key($array, $key = '', $valuekey = '')
{
$return = [];
if( empty($array) )
{
return [];
}
while (list($k, $v) = each($array)) {
if ($key == '') {
$return[] = ($valuekey != '' ? $v[$valuekey] : $v);
} else {
$return[$v[$key]] = ($valuekey != '' ? $v[$valuekey] : $v);
}
}
reset($array);
return $return;
} 查看全部
php将多为数组中的某一个元素作为键名
 
/*
* 将多为数组中的某一个元素作为键名 健值必须唯一
* $array = array(0=>array('id'=>10,'title'=>'t10'),1=>array('id'=>11,'title'=>'t11'));
* $array = array_set_key($array, 'id');
* array(10=>array('id'=>10,'title'=>'t10'),11=>array('id'=>11,'title'=>'t11'));
*/
static function array_set_key($array, $key = '', $valuekey = '')
{
$return = [];
if( empty($array) )
{
return [];
}
while (list($k, $v) = each($array)) {
if ($key == '') {
$return[] = ($valuekey != '' ? $v[$valuekey] : $v);
} else {
$return[$v[$key]] = ($valuekey != '' ? $v[$valuekey] : $v);
}
}
reset($array);
return $return;
}

php二维数组按指定字段排序

超级小帅 发表了文章 • 0 个评论 • 1678 次浏览 • 2017-08-22 10:43 • 来自相关话题

php二维数组按指定字段排序
 
/**
* 二维数组按指定字段排序
*
* @param array $list
* @param string $field
* @param string $sortby
*/
public static function sortArrayByField($list, $field, $sortby = 'asc')
{
if (is_array($list)) {
$refer = $resultSet = array();
foreach ($list as $i => $data) {
$refer[$i] = &$data[$field];
}
switch ($sortby) {
case 'asc': // 正向排序
asort($refer);
break;
case 'desc': // 逆向排序
arsort($refer);
break;
case 'nat': // 自然排序
natcasesort($refer);
break;
}
foreach ($refer as $key => $val) {
$resultSet[] = &$list[$key];
}
return $resultSet;
}
return false;
} 查看全部
php二维数组按指定字段排序
 
/**
* 二维数组按指定字段排序
*
* @param array $list
* @param string $field
* @param string $sortby
*/
public static function sortArrayByField($list, $field, $sortby = 'asc')
{
if (is_array($list)) {
$refer = $resultSet = array();
foreach ($list as $i => $data) {
$refer[$i] = &$data[$field];
}
switch ($sortby) {
case 'asc': // 正向排序
asort($refer);
break;
case 'desc': // 逆向排序
arsort($refer);
break;
case 'nat': // 自然排序
natcasesort($refer);
break;
}
foreach ($refer as $key => $val) {
$resultSet[] = &$list[$key];
}
return $resultSet;
}
return false;
}

php转换字符编码

超级小帅 发表了文章 • 0 个评论 • 1652 次浏览 • 2017-08-22 10:42 • 来自相关话题

判断并转换字符编码,需 mb_string 模块支持。
 
/**
* 判断并转换字符编码,需 mb_string 模块支持。
*
* @param mixed $str
* 数据
* @param string $encoding
* 要转换的编码类型
* @return mixed 转换过的数据
*/
public function encoding_convert($str, $encoding = 'UTF-8')
{
if (is_array($str)) {
$arr = array();
foreach ($str as $key => $val) {
$arr[$key] = self::encoding_convert($val, $encoding);
}
return $arr;
}
$_encoding = mb_detect_encoding($str, array(
'ASCII',
'UTF-8',
'GB2312',
'GBK',
'BIG5'
));
if ($_encoding == $encoding) {
return $str;
}
try {
$str = @mb_convert_encoding($str, $encoding, $_encoding);
} catch (Exception $e) {
// nothing todo
}
return $str;
}
  查看全部

判断并转换字符编码,需 mb_string 模块支持。
 
/**
* 判断并转换字符编码,需 mb_string 模块支持。
*
* @param mixed $str
* 数据
* @param string $encoding
* 要转换的编码类型
* @return mixed 转换过的数据
*/
public function encoding_convert($str, $encoding = 'UTF-8')
{
if (is_array($str)) {
$arr = array();
foreach ($str as $key => $val) {
$arr[$key] = self::encoding_convert($val, $encoding);
}
return $arr;
}
$_encoding = mb_detect_encoding($str, array(
'ASCII',
'UTF-8',
'GB2312',
'GBK',
'BIG5'
));
if ($_encoding == $encoding) {
return $str;
}
try {
$str = @mb_convert_encoding($str, $encoding, $_encoding);
} catch (Exception $e) {
// nothing todo
}
return $str;
}

 

php获取客户端ip

超级小帅 发表了文章 • 0 个评论 • 1572 次浏览 • 2017-08-22 10:41 • 来自相关话题

php获取客户端ip
/**
* 获取客户端ip
* @return string
*/
public static function get_ip(){
static $realip = NULL;
if ($realip !== NULL) return $realip;
if (isset($_SERVER)) {
if(isset($_SERVER['HTTP_X_REAL_IP']) && $_SERVER['HTTP_X_REAL_IP']){
$realip = $_SERVER['HTTP_X_REAL_IP'];
}elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && $_SERVER['HTTP_X_FORWARDED_FOR']) {
$arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
foreach ($arr AS $ip) {
$ip = trim($ip);
if ($ip != 'unknown') {
$realip = $ip;
break;
}
}
} elseif (isset($_SERVER['HTTP_CLIENT_IP']) && $_SERVER['HTTP_CLIENT_IP']) {
$realip = $_SERVER['HTTP_CLIENT_IP'];
} else {
$realip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '0.0.0.0';
}
} else {
if (getenv('HTTP_X_REAL_IP')){
$realip = getenv('HTTP_X_REAL_IP');
}elseif (getenv('HTTP_X_FORWARDED_FOR')) {
$realip = getenv('HTTP_X_FORWARDED_FOR');
} elseif (getenv('HTTP_CLIENT_IP')) {
$realip = getenv('HTTP_CLIENT_IP');
} else {
$realip = getenv('REMOTE_ADDR');
}
}
$onlineip = array();
preg_match("/[\\d\\.]{7,15}/", $realip, $onlineip);
return !empty($onlineip[0]) ? $onlineip[0] : '0.0.0.0';
} 查看全部
php获取客户端ip
/**
* 获取客户端ip
* @return string
*/
public static function get_ip(){
static $realip = NULL;
if ($realip !== NULL) return $realip;
if (isset($_SERVER)) {
if(isset($_SERVER['HTTP_X_REAL_IP']) && $_SERVER['HTTP_X_REAL_IP']){
$realip = $_SERVER['HTTP_X_REAL_IP'];
}elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && $_SERVER['HTTP_X_FORWARDED_FOR']) {
$arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
foreach ($arr AS $ip) {
$ip = trim($ip);
if ($ip != 'unknown') {
$realip = $ip;
break;
}
}
} elseif (isset($_SERVER['HTTP_CLIENT_IP']) && $_SERVER['HTTP_CLIENT_IP']) {
$realip = $_SERVER['HTTP_CLIENT_IP'];
} else {
$realip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '0.0.0.0';
}
} else {
if (getenv('HTTP_X_REAL_IP')){
$realip = getenv('HTTP_X_REAL_IP');
}elseif (getenv('HTTP_X_FORWARDED_FOR')) {
$realip = getenv('HTTP_X_FORWARDED_FOR');
} elseif (getenv('HTTP_CLIENT_IP')) {
$realip = getenv('HTTP_CLIENT_IP');
} else {
$realip = getenv('REMOTE_ADDR');
}
}
$onlineip = array();
preg_match("/[\\d\\.]{7,15}/", $realip, $onlineip);
return !empty($onlineip[0]) ? $onlineip[0] : '0.0.0.0';
}

jquery事件重复绑定

超级小帅 发表了文章 • 0 个评论 • 1602 次浏览 • 2017-08-18 18:35 • 来自相关话题

在工作中遇到了事件重复绑定问题,在点击的时候触发了很多次。下面是解决办法
on的话用off()先关掉事件然后再开启就不会出现这种重复绑定问题
live的话用die()先关掉事件然后再开启就不会出现这种重复绑定问题
//off().on()
$('.demo').off().on('click',function(){
})

//die().live()
$('.demo').die().live('click',function(){
}) 
  查看全部
在工作中遇到了事件重复绑定问题,在点击的时候触发了很多次。下面是解决办法
on的话用off()先关掉事件然后再开启就不会出现这种重复绑定问题
live的话用die()先关掉事件然后再开启就不会出现这种重复绑定问题
//off().on()
$('.demo').off().on('click',function(){
})

//die().live()
$('.demo').die().live('click',function(){
})
 
 

ajax拉取数据后绑定事件

超级小帅 发表了文章 • 0 个评论 • 1711 次浏览 • 2017-08-18 18:31 • 来自相关话题

在工作中遇到ajax拉取列表后绑定事件,直接写在数据中感觉太low所以分享一个快捷的绑定。//直接绑定body 然后找选择器
$('body').on("click",".demo",function(){
//code
}) 查看全部
在工作中遇到ajax拉取列表后绑定事件,直接写在数据中感觉太low所以分享一个快捷的绑定。
//直接绑定body 然后找选择器   
$('body').on("click",".demo",function(){
//code
})

php导出csv

超级小帅 发表了文章 • 0 个评论 • 1628 次浏览 • 2017-08-14 13:09 • 来自相关话题

在工作中遇到的导出csv表格。贴出来和大家分享下
 
/**
*
* @param $filename 要导出的文件名
* @param $firstline 第一行内容数组
* eg $firstline = ['姓名','性别','年龄'];
* @param $data 要导出的内容数组
* 二维数组 eg [['name'=>'xx','sex'=>'xx','1'],['name'=>'xx','sex'=>'xx','1']]
*/
public static function export_csv($filename, $firstlinearr, $dataarr)
{
$str = '';
foreach ($firstlinearr as $first) {
$first = str_replace(array("\r\n", "\r", "\n"), '', $first);
$str .= ',' . iconv('utf-8', 'gbk//IGNORE', $first); // 中文转码
}
$str = ltrim($str, ',') . "\n";
foreach ($dataarr as $val) {
$valuestr = '';
foreach ($val as $value) {
$value = str_replace(array("\r\n", "\r", "\n"), '', $value);
$valuestr .= ',' . iconv('utf-8', 'gbk//IGNORE', $value); // 中文转码
}
$str .= ltrim($valuestr, ',') . "\n";
}
$filename = $filename . date('YmdHis') . '.csv'; // 设置文件名
header("Content-type:text/csv");
header("Content-Disposition:attachment;filename=" . $filename);
header('Cache-Control:must-revalidate,post-check=0,pre-check=0');
header('Expires:0');
header("Pragma: no-cache");
echo $str;
exit();
} 查看全部
在工作中遇到的导出csv表格。贴出来和大家分享下
 
/**
*
* @param $filename 要导出的文件名
* @param $firstline 第一行内容数组
* eg $firstline = ['姓名','性别','年龄'];
* @param $data 要导出的内容数组
* 二维数组 eg [['name'=>'xx','sex'=>'xx','1'],['name'=>'xx','sex'=>'xx','1']]
*/
public static function export_csv($filename, $firstlinearr, $dataarr)
{
$str = '';
foreach ($firstlinearr as $first) {
$first = str_replace(array("\r\n", "\r", "\n"), '', $first);
$str .= ',' . iconv('utf-8', 'gbk//IGNORE', $first); // 中文转码
}
$str = ltrim($str, ',') . "\n";
foreach ($dataarr as $val) {
$valuestr = '';
foreach ($val as $value) {
$value = str_replace(array("\r\n", "\r", "\n"), '', $value);
$valuestr .= ',' . iconv('utf-8', 'gbk//IGNORE', $value); // 中文转码
}
$str .= ltrim($valuestr, ',') . "\n";
}
$filename = $filename . date('YmdHis') . '.csv'; // 设置文件名
header("Content-type:text/csv");
header("Content-Disposition:attachment;filename=" . $filename);
header('Cache-Control:must-revalidate,post-check=0,pre-check=0');
header('Expires:0');
header("Pragma: no-cache");
echo $str;
exit();
}

bootstrap禁用空白处点击关闭弹窗

超级小帅 发表了文章 • 0 个评论 • 1551 次浏览 • 2017-08-03 17:10 • 来自相关话题

在使用bootstrap开发时,用到弹窗,但是点击空白处弹窗会直接消失,有些弹窗是不用关闭,废话少说直接上代码
  $("#myModal").modal('hide');//关闭弹窗
$("#myModal").modal('show');//打开弹窗
$("#myModal").modal({'backdrop':'static'});//关键关键的地方点击空白不关闭弹窗 代码
 





  查看全部
在使用bootstrap开发时,用到弹窗,但是点击空白处弹窗会直接消失,有些弹窗是不用关闭,废话少说直接上代码
 
 $("#myModal").modal('hide');//关闭弹窗  
$("#myModal").modal('show');//打开弹窗
$("#myModal").modal({'backdrop':'static'});//关键关键的地方点击空白不关闭弹窗
代码
 

QQ截图20170803170447.png

 

js手机验证,js身份证验证,js电话号码验证,js字符验证,需要的几种都在这里

超级小帅 发表了文章 • 0 个评论 • 1270 次浏览 • 2017-07-27 20:10 • 来自相关话题

js手机验证,js身份证验证,js电话号码验证,js字符验证。
 




window.regcheck = function(type,gets){
var reg;
switch(type){
case "*": /* 确认密码 */
reg= /.{1,}/;
return reg.test(gets);
case "*6-16": /* 输入密码6-16位之间*/
//reg= /[^\s]{6,8}$/;
reg = /^.{6,16}$/;
return reg.test(gets);
case "n": /* 数字输入*/
return !isNaN(gets);
case "s": /* 数字和字母 可同时输入*/
return isNaN(gets);
case "s6-18": /* 字符长度6-18位之间 */
reg= /^[\u4E00-\u9FA5\uf900-\ufa2d\w]{6,18}$/;
return reg.test(gets);
case "p": /* 输入6位数字 */
reg= /^[0-9]{6}$/;
return reg.test(gets);
case "m": /* 手机验证 */
//reg= /^13[0-9]{1}[0-9]{8}$|15[0189]{1}[0-9]{8}$|18[26789]{1}|17[26789]{1}[0-9]{8}$/;^(1)[0-9]{10}$
reg= /^(1)[0-9]{10}$/;
return reg.test(gets);
case "i": /* 身份证 */
reg = /^(\d{15}|\d{18}|\d{17}[a-zA-Z]{1})$/
return reg.test(gets);
case "mz": /* 中文名字验证2-10个字 */
reg = /^[\u4e00-\u9fa5]{2,10}$/
return reg.test(gets);
case "yhk": /* 银行卡号码16-19位 */
reg = /^[\d]{16,19}$/
return reg.test(gets);
case "e": /* 验证邮箱格式 */
reg = /\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
return reg.test(gets);
case "ps_username": /* 中文、字母、数字 _ */
reg = /^(\w|[\u4E00-\u9FA5]){2,8}$/;
return reg.test(gets);
default:
return false;
}
}
})
  查看全部
js手机验证,js身份证验证,js电话号码验证,js字符验证。
 

b03533fa828ba61ea66a5d9f4234970a314e59fd.jpg
window.regcheck = function(type,gets){
var reg;
switch(type){
case "*": /* 确认密码 */
reg= /.{1,}/;
return reg.test(gets);
case "*6-16": /* 输入密码6-16位之间*/
//reg= /[^\s]{6,8}$/;
reg = /^.{6,16}$/;
return reg.test(gets);
case "n": /* 数字输入*/
return !isNaN(gets);
case "s": /* 数字和字母 可同时输入*/
return isNaN(gets);
case "s6-18": /* 字符长度6-18位之间 */
reg= /^[\u4E00-\u9FA5\uf900-\ufa2d\w]{6,18}$/;
return reg.test(gets);
case "p": /* 输入6位数字 */
reg= /^[0-9]{6}$/;
return reg.test(gets);
case "m": /* 手机验证 */
//reg= /^13[0-9]{1}[0-9]{8}$|15[0189]{1}[0-9]{8}$|18[26789]{1}|17[26789]{1}[0-9]{8}$/;^(1)[0-9]{10}$
reg= /^(1)[0-9]{10}$/;
return reg.test(gets);
case "i": /* 身份证 */
reg = /^(\d{15}|\d{18}|\d{17}[a-zA-Z]{1})$/
return reg.test(gets);
case "mz": /* 中文名字验证2-10个字 */
reg = /^[\u4e00-\u9fa5]{2,10}$/
return reg.test(gets);
case "yhk": /* 银行卡号码16-19位 */
reg = /^[\d]{16,19}$/
return reg.test(gets);
case "e": /* 验证邮箱格式 */
reg = /\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
return reg.test(gets);
case "ps_username": /* 中文、字母、数字 _ */
reg = /^(\w|[\u4E00-\u9FA5]){2,8}$/;
return reg.test(gets);
default:
return false;
}
}
})