Mysql 根据首字母查询

一、函数

这里是通过函数调用进行获取汉字的拼音首字母。

DELIMITER $$
CREATE FUNCTION `pinyin`(P_NAME VARCHAR(255)) RETURNS varchar(255) CHARSET utf8
DETERMINISTIC
BEGIN
DECLARE V_COMPARE VARCHAR(255);
DECLARE V_RETURN VARCHAR(255);
DECLARE I INT;
SET I = 1;
SET V_RETURN = '';
#循环截取字符
while I < LENGTH(P_NAME) do
SET V_COMPARE = SUBSTR(P_NAME, I, 1);
IF (V_COMPARE != '') THEN
#字符串拼接
SET V_RETURN = CONCAT(V_RETURN, to_frist_pinyin(V_COMPARE));
END IF;
SET I = I + 1;
end while;
IF (ISNULL(V_RETURN) or V_RETURN = '') THEN
SET V_RETURN = P_NAME;
END IF;
RETURN V_RETURN;
END$$

CREATE FUNCTION `to_frist_pinyin`(P_NAME VARCHAR(255)) RETURNS varchar(255) CHARSET utf8
BEGIN
DECLARE V_RETURN VARCHAR(255);
DECLARE V_FIRST_CHAR VARCHAR(255);
#这块主要意思是假如传入的是英文串的话,只取首字母
set V_FIRST_CHAR =UPPER(LEFT(CONVERT(P_NAME USING gbk),1));
set V_RETURN = V_FIRST_CHAR;
#如果是这些特殊符号,直接返回#
IF V_FIRST_CHAR in ('(',')','《','》')
THEN SET V_RETURN = '';
#两个不相等只有一个情况,V_FIRST_CHAR是中文汉字或者中文符号。
elseif LENGTH( V_FIRST_CHAR) <> CHARACTER_LENGTH( V_FIRST_CHAR )
then
SET V_RETURN = ELT(INTERVAL(CONV(HEX(left(CONVERT(P_NAME USING gbk),1)),16,10),
0xB0A1,0xB0C5,0xB2C1,0xB4EE,0xB6EA,0xB7A2,0xB8C1,0xB9FE,0xBBF7,
0xBFA6,0xC0AC,0xC2E8,0xC4C3,0xC5B6,0xC5BE,0xC6DA,0xC8BB,
0xC8F6,0xCBFA,0xCDDA,0xCEF4,0xD1B9,0xD4D1),
'A','B','C','D','E','F','G','H','J','K','L','M','N','O','P','Q','R','S','T','W','X','Y','Z');
#如果是下面的直接原样输出
elseif V_FIRST_CHAR in ('A','B','C','D','E','F','G','H','J','K','L','M','N','O','P','Q','R','S','T','W','X','Y','Z',
'1','2','3','4','5','6','7','8','9','0','*','+','-','=','/','\\','{','}','[',']','(',')','(',')')
then SET V_RETURN = V_RETURN;
#其他的输出#
else
SET V_RETURN = '#';
END IF;
#为空的话输出#
RETURN IFNULL(V_RETURN,'#');
END$$
DELIMITER ;

二、执行遇到问题

set global log_bin_trust_function_creators = 1;

设置为1,创建完后,可以再设置回去。

简单介绍一下,当二进制日志启用后,这个变量就会启用。它控制是否可以信任存储函数创建者,不会创建写入二进制日志引起不安全事件的存储函数。如果设置为0(默认值),用户不得创建或修改存储函数,除非它们具有除CREATE ROUTINE或ALTER ROUTINE特权之外的SUPER权限。 设置为0还强制使用DETERMINISTIC特性或READS SQL DATA或NO SQL特性声明函数的限制。 如果变量设置为1,MySQL不会对创建存储函数实施这些限制。

三、如何使用

select id,title,newstime,titlepic from phome_ecms_photo where pinyin(left(title,1))='D' limit 100

举例,要查询标题字段以D开头的数据,查询结果如下:

思维导图xmind zen

XMind 是一款专业的全球领先的商业思维导图软件,在国内使用广泛,拥有强大的功能、包括思维管理、商务演示、与办公软件协同工作等功能。它采用全球先进的Eclipse RCP软件架构,是集思维导图与头脑风暴于一体的可视化思考工具,能用来捕捉想法、理清思路、管理复杂信息并促进团队协作。XMind思维导图软件曾被著名互联网媒体Lifehacker评选为“最佳头脑风暴和思维导图工具”及”最受欢迎的思维导图软件”。小编给大家分享一款思维导图xmind zen 希望大家喜欢!

安装时请注意看安装说明,主程序安装完成后关闭软件,再安装破解软件,然后第一次打开软件后跳过登录,即可使用。千万不要更新哦,会导致软件无法使用

 

下载地址:https://wwz.lanzoul.com/i6ftk09aw87c

驱动精灵V9.7免安装不限速版

驱动精灵现在开始限速了,一个驱动几百兆下载速度给你限制到几十KB,大大增加了安装驱动的时间,所以本人分享一个单文件免安装的不限速版,希望大家喜欢!
(备注:请右键以管理员身份运行,否则点击没反应)

下载地址:https://wwz.lanzoul.com/ibZxw09aujuj

 

Pycharm激活码,Pycharm稳定专属激活码(全网最新)

Pycharm正版专属激活码领取(永久更新)

2018.2~2022版本用这个,下面激活码直接复制粘贴到activation code即可激活软件

下面是正版激活,会给大家一直更新的,直接复制粘贴到activation code即可激活

更换新激活码的时候如果还显示suspended,用新激活码再激活一次即可

35TQNTIWIC-eyJsaWNlbnNlSWQiOiIzNVRRTlRJV0lDIiwibGljZW5zZWVOYW1lIjoi5rC45LmF5r+A5rS7IHd3d8K3YWppaHVvwrdjb20iLCJhc3NpZ25lZU5hbWUiOiIiLCJhc3NpZ25lZUVtYWlsIjoiIiwibGljZW5zZVJlc3RyaWN0aW9uIjoiIiwiY2hlY2tDb25jdXJyZW50VXNlIjpmYWxzZSwicHJvZHVjdHMiOlt7ImNvZGUiOiJQQyIsInBhaWRVcFRvIjoiMjAyMi0wNy0wNSIsImV4dGVuZGVkIjpmYWxzZX0seyJjb2RlIjoiUFBDIiwicGFpZFVwVG8iOiIyMDIyLTA3LTA1IiwiZXh0ZW5kZWQiOnRydWV9LHsiY29kZSI6IlBXUyIsInBhaWRVcFRvIjoiMjAyMi0wNy0wNSIsImV4dGVuZGVkIjp0cnVlfSx7ImNvZGUiOiJQU0kiLCJwYWlkVXBUbyI6IjIwMjItMDctMDUiLCJleHRlbmRlZCI6dHJ1ZX0seyJjb2RlIjoiUENXTVAiLCJwYWlkVXBUbyI6IjIwMjItMDctMDUiLCJleHRlbmRlZCI6dHJ1ZX1dLCJtZXRhZGF0YSI6IjAxMjAyMjA2MDZQU0FNMDAwMDA1IiwiaGFzaCI6IjM0NzAzNjUxLzA6MTExMjYwOTc5IiwiZ3JhY2VQZXJpb2REYXlzIjo3LCJhdXRvUHJvbG9uZ2F0ZWQiOmZhbHNlLCJpc0F1dG9Qcm9sb25nYXRlZCI6ZmFsc2V9-dhurTGA1v7l1FlzPxtw9xnqWN8Zoz2UUZ/h+kw+YQtkZBr5vyXzGEz9lhdBAy7Ie0kFg7ujEcPYx9ev0m93ZBHDq7ke0JdS6gPzrZhKqi2uhwi0evdlU/GmHlAf5oL7Ou/IPVEcrZ5fEr+aXPhxbBezAKbVn54/G+CU3triouIE0iNYvKpMxEm2eZV1Nk1V7s4DHHbF5b+KMlRJJvI3KAOnhPB9IO8zb36F02mvoO5Fek6wml/fZLeMpVaOPibIjgupmxItTLM2WZPDnemb9QsTAu1ciJGG5igzBD6pJ2InuvQBK9kMCeglTJ5lN14AfaWKv2DJT7xuZzRmvqmEPlQ==-MIIETDCCAjSgAwIBAgIBDTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTIwMTAxOTA5MDU1M1oXDTIyMTAyMTA5MDU1M1owHzEdMBsGA1UEAwwUcHJvZDJ5LWZyb20tMjAyMDEwMTkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDCP4uk4SlVdA5nuA3DQC+NsEnZS9npFnO0zrmMWcz1++q2UWJNuGTh0rwi+3fUJIArfvVh7gNtIp93rxjtrQAuf4/Fa6sySp4c32MeFACfC0q+oUoWebhOIaYTYUxm4LAZ355vzt8YeDPmvWKxA81udqEk4gU9NNAOz1Um5/8LyR8SGsSc4EDBRSjcMWMwMkYSauGqGcEUK8WhfplsyF61lKSOFA6VmfUmeDK15rUWWLbOMKgn2cxFA98A+s74T9Oo96CU7rp/umDXvhnyhAXSukw/qCGOVhwKR8B6aeDtoBWQgjnvMtPgOUPRTPkPGbwPwwDkvAHYiuKJ7Bd2wH7rAgMBAAGjgZkwgZYwCQYDVR0TBAIwADAdBgNVHQ4EFgQUJNoRIpb1hUHAk0foMSNM9MCEAv8wSAYDVR0jBEEwP4AUo562SGdCEjZBvW3gubSgUouX8bOhHKQaMBgxFjAUBgNVBAMMDUpldFByb2ZpbGUgQ0GCCQDSbLGDsoN54TATBgNVHSUEDDAKBggrBgEFBQcDATALBgNVHQ8EBAMCBaAwDQYJKoZIhvcNAQELBQADggIBAB2J1ysRudbkqmkUFK8xqhiZaYPd30TlmCmSAaGJ0eBpvkVeqA2jGYhAQRqFiAlFC63JKvWvRZO1iRuWCEfUMkdqQ9VQPXziE/BlsOIgrL6RlJfuFcEZ8TK3syIfIGQZNCxYhLLUuet2HE6LJYPQ5c0jH4kDooRpcVZ4rBxNwddpctUO2te9UU5/FjhioZQsPvd92qOTsV+8Cyl2fvNhNKD1Uu9ff5AkVIQn4JU23ozdB/R5oUlebwaTE6WZNBs+TA/qPj+5/wi9NH71WRB0hqUoLI2AKKyiPw++FtN4Su1vsdDlrAzDj9ILjpjJKA1ImuVcG329/WTYIKysZ1CWK3zATg9BeCUPAV1pQy8ToXOq+RSYen6winZ2OO93eyHv2Iw5kbn1dqfBw1BuTE29V2FJKicJSu8iEOpfoafwJISXmz1wnnWL3V/0NxTulfWsXugOoLfv0ZIBP1xH9kmf22jjQ2JiHhQZP7ZDsreRrOeIQ/c4yR8IQvMLfC0WKQqrHu5ZzXTH4NO3CwGWSlTY74kE91zXB5mwWAx1jig+UXYc2w4RkVhy0//lOmVya/PEepuuTTI4+UJwC7qbVlh5zfhj8oTNUXgN0AOc+Q0/WFPl1aw5VV/VrO8FCoB15lFVlpKaQ1Yh+DVU8ke+rt9Th0BCHXe0uZOEmH0nOnH/0onD

2018.1以下版本用这个

35TQNTIWIC-eyJsaWNlbnNlSWQiOiIzNVRRTlRJV0lDIiwibGljZW5zZWVOYW1lIjoi5rC45LmF5r+A5rS7IHd3d8K3YWppaHVvwrdjb20iLCJhc3NpZ25lZU5hbWUiOiIiLCJhc3NpZ25lZUVtYWlsIjoiIiwibGljZW5zZVJlc3RyaWN0aW9uIjoiIiwiY2hlY2tDb25jdXJyZW50VXNlIjpmYWxzZSwicHJvZHVjdHMiOlt7ImNvZGUiOiJQQyIsInBhaWRVcFRvIjoiMjAyMi0wNy0wNSJ9LHsiY29kZSI6IlBQQyIsInBhaWRVcFRvIjoiMjAyMi0wNy0wNSJ9LHsiY29kZSI6IlBXUyIsInBhaWRVcFRvIjoiMjAyMi0wNy0wNSJ9LHsiY29kZSI6IlBTSSIsInBhaWRVcFRvIjoiMjAyMi0wNy0wNSJ9LHsiY29kZSI6IlBDV01QIiwicGFpZFVwVG8iOiIyMDIyLTA3LTA1In1dLCJoYXNoIjoiMzQ3MDM2NTEvMDoxMTEyNjA5NzkiLCJncmFjZVBlcmlvZERheXMiOjcsImF1dG9Qcm9sb25nYXRlZCI6ZmFsc2UsImlzQXV0b1Byb2xvbmdhdGVkIjpmYWxzZX0=-odQT4YAf7jxS425neTrnOFILScY03lHAubdbHFboNy0KwdOPMhS5RqQ+MIulTv3RjLZ0/z1EQ68Nvcbb8iOIM7CzpKlSLtaOE6AokdLRh8Twa7Xy7wZFVYRFgd7VjYoOFUHq1ezAs8GPRYGFjsgx1dMZpbndXoLBSK43G5v4lW3HMXK/0XYsMlbvcp3cGU32E2aUveewRwoIjmjiu2J6TV9bkc9lYRiYAT8qK2n0iqKS2HcH0+xZY8FVfD6xxeHJFrgEY4kmNLI/c6RGeNEU4j4W3JYd3KAh4WiX1zY9hmkfqEioFHysIj3w07onzugnH5PuyRx7L80SeW826ihSpA==-MIIETDCCAjSgAwIBAgIBDTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTIwMTAxOTA5MDU1M1oXDTIyMTAyMTA5MDU1M1owHzEdMBsGA1UEAwwUcHJvZDJ5LWZyb20tMjAyMDEwMTkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDCP4uk4SlVdA5nuA3DQC+NsEnZS9npFnO0zrmMWcz1++q2UWJNuGTh0rwi+3fUJIArfvVh7gNtIp93rxjtrQAuf4/Fa6sySp4c32MeFACfC0q+oUoWebhOIaYTYUxm4LAZ355vzt8YeDPmvWKxA81udqEk4gU9NNAOz1Um5/8LyR8SGsSc4EDBRSjcMWMwMkYSauGqGcEUK8WhfplsyF61lKSOFA6VmfUmeDK15rUWWLbOMKgn2cxFA98A+s74T9Oo96CU7rp/umDXvhnyhAXSukw/qCGOVhwKR8B6aeDtoBWQgjnvMtPgOUPRTPkPGbwPwwDkvAHYiuKJ7Bd2wH7rAgMBAAGjgZkwgZYwCQYDVR0TBAIwADAdBgNVHQ4EFgQUJNoRIpb1hUHAk0foMSNM9MCEAv8wSAYDVR0jBEEwP4AUo562SGdCEjZBvW3gubSgUouX8bOhHKQaMBgxFjAUBgNVBAMMDUpldFByb2ZpbGUgQ0GCCQDSbLGDsoN54TATBgNVHSUEDDAKBggrBgEFBQcDATALBgNVHQ8EBAMCBaAwDQYJKoZIhvcNAQELBQADggIBAB2J1ysRudbkqmkUFK8xqhiZaYPd30TlmCmSAaGJ0eBpvkVeqA2jGYhAQRqFiAlFC63JKvWvRZO1iRuWCEfUMkdqQ9VQPXziE/BlsOIgrL6RlJfuFcEZ8TK3syIfIGQZNCxYhLLUuet2HE6LJYPQ5c0jH4kDooRpcVZ4rBxNwddpctUO2te9UU5/FjhioZQsPvd92qOTsV+8Cyl2fvNhNKD1Uu9ff5AkVIQn4JU23ozdB/R5oUlebwaTE6WZNBs+TA/qPj+5/wi9NH71WRB0hqUoLI2AKKyiPw++FtN4Su1vsdDlrAzDj9ILjpjJKA1ImuVcG329/WTYIKysZ1CWK3zATg9BeCUPAV1pQy8ToXOq+RSYen6winZ2OO93eyHv2Iw5kbn1dqfBw1BuTE29V2FJKicJSu8iEOpfoafwJISXmz1wnnWL3V/0NxTulfWsXugOoLfv0ZIBP1xH9kmf22jjQ2JiHhQZP7ZDsreRrOeIQ/c4yR8IQvMLfC0WKQqrHu5ZzXTH4NO3CwGWSlTY74kE91zXB5mwWAx1jig+UXYc2w4RkVhy0//lOmVya/PEepuuTTI4+UJwC7qbVlh5zfhj8oTNUXgN0AOc+Q0/WFPl1aw5VV/VrO8FCoB15lFVlpKaQ1Yh+DVU8ke+rt9Th0BCHXe0uZOEmH0nOnH/0onD

激活后如果显示key is invalid,这是因为你破解过软件的原因,请按如下操作
打开软件,help edit VM options ,删掉最下面一行的javaagent,重启软件即可

(如果是较新的版本Pycharm和Code with me都要激活一次)

转载于:https://www.ajihuo.com/pycharm/4197.html

CDR插件,一键批量标注尺寸,效率翻倍

CorelDRAW 在平面行业的应用非常广泛,尤其在制作印刷物料上暂时有着不可替代性;在平时我们制作物料模型时,需要对物料做尺寸标注,今天给大家分享一个尺寸标注的插件

CorelDRAW 插件,标注对象尺寸,长高,线段长,线条长等,单对象标注,多对象统一标注先编群组。支持批量标注,选中可调整标注字号。选中按“×”删除所选标注,不选按“×”删除全部标注。
资源来源网络,感谢原创作者的整理和开发,资源实属来之不易,请大家私下交流使用,切勿商业传播。
下载地址:https://ccswust.lanzouj.com/iN544060nhzc
文章来源:https://blog.ccswust.org/18963.html

ThinkPHP validate 验证规则

下面是部分tp5内置的验证规则:

格式验证类:

'name'=>'require'

验证某个字段的值是否为数字(采用filter_var验证),例如:

number 或者 integer
'name'=>'number'

验证某个字段的值是否为浮点数字(采用filter_var验证),例如:

float
'name'=>'float'

验证某个字段的值是否为布尔值(采用filter_var验证),例如:

  boolean
'boolean'=>'boolean'

验证某个字段的值是否为email地址(采用filter_var验证),例如:

    email
'email'=>'email'

验证某个字段的值是否为数组,例如:

array
'info'=>'array'

验证某个字段是否为为 yes, on, 或是 1。这在确认”服务条款”是否同意时很有用,例如:

    accepted
'accept'=>'accepted'

验证值是否为有效的日期,例如:

  注:会对日期值进行strtotime后进行判断。

date
'date'=>'date'

验证某个字段的值是否为字母,例如:

alpha
'name'=>'alpha'

验证某个字段的值是否为字母和数字,例如:

    alphaNum
'name'=>'alphaNum'

验证某个字段的值是否为字母和数字,下划线_及破折号-,例如:

alphaDash
'name'=>'alphaDash'

验证某个字段的值是否为有效的域名或者IP,例如:

activeUrl
'host'=>'activeUrl'

验证某个字段的值是否为有效的URL地址(采用filter_var验证),例如:

url
'url'=>'url'

验证某个字段的值是否为有效的IP地址(采用filter_var验证),例如:

  注:支持验证ipv4和ipv6格式的IP地址。

ip
'ip'=>'ip'

验证某个字段的值是否为指定格式的日期,例如:

    dateFormat:format
'create_time'=>'dateFormat:y-m-d'

长度和区间验证类

in
'num'=>'in:1,2,3'

验证某个字段的值不在某个范围,例如:

notIn
'num'=>'notIn:1,2,3'

验证某个字段的值是否在某个区间,例如:

    between
'num'=>'between:1,10'

验证某个字段的值不在某个范围,例如:

notBetween
'num'=>'notBetween:1,10'

验证某个字段的值的长度是否在某个范围,例如:

    length:num1,num2
'name'=>'length:4,25'

  或者指定长度

'name'=>'length:4'

验证某个字段的值的最大长度,例如:

max:number

'name'=>'max:25'

如果验证的数据是数组,则判断数组的长度。
如果验证的数据是File对象,则判断文件的大小。

验证某个字段的值的最小长度,例如:

min:number
'name'=>'min:5'

如果验证的数据是数组,则判断数组的长度。
如果验证的数据是File对象,则判断文件的大小。

验证某个字段的值是否在某个日期之后,例如:

after:日期
'begin_time' =>'after:2016-3-18',

验证某个字段的值是否在某个日期之前,例如:

    before:日期
'end_time' =>'before:2016-10-01',

验证当前操作(注意不是某个值)是否在某个有效日期之内,例如:

    expire:开始时间,结束时间
'expire_time' =>'expire:2016-2-1,2016-10-01',

验证当前请求的IP是否在某个范围,例如:

    allowIp:allow1,allow2,...
'name' =>'allowIp:114.45.4.55',

  注:该规则可以用于某个后台的访问权限

验证当前请求的IP是否禁止访问,例如:

    denyIp:allow1,allow2,...
'name' =>'denyIp:114.45.4.55',

字段比较类

验证某个字段是否和另外一个字段的值一致

confirm
'repassport'=>'require|confirm:passport'

验证某个字段是否和另外一个字段的值不一致

    different
'name'=>'require|different:account'

验证是否大于等于某个值,例如:

    egt 或者 >=
'score'=>'egt:60' ||
'num'=>'>=:100'

验证是否大于某个值,例如:

    gt 或者 >
'score'=>'gt:60' ||
'num'=>'>:100'

验证是否小于等于某个值,例如:

    elt 或者 <=
'score'=>'elt:100' ||
'num'=>'<=:100'

验证是否小于某个值,例如:

    lt 或者 <
'score'=>'lt:100'||
'num'=>'<:100'

验证是否等于某个值,例如:

    eq 或者 = 或者 same
'score'=>'eq:100'||
'num'=>'=:100'||
'num'=>'same:100'

filter验证

支持使用filter_var进行验证,例如:

'ip'=>'filter:validate_ip'

正则验证

支持直接使用正则验证,例如:

'zip'=>'\d{6}'  
或者  
'zip'=>'regex:\d{6}',

 如果你的正则表达式中包含有|符号的话,必须使用数组方式定义。

'accepted'=>['regex'=>'/^(yes|on|1)$/i'],

上传验证

验证是否是一个上传文件

    file

验证是否是一个图像文件,width height和type都是可选,width和height必须同时定义。

    image:width,height,type

验证上传文件后缀

    fileExt:允许的文件后缀

验证上传文件类型

    fileMime:允许的文件类型

验证上传文件大小

    fileSize:允许的文件字节大小

行为验证

使用行为验证数据,例如:

'data'=>'behavior:\app\index\behavior\Check'

其它验证

  验证当前请求的字段值是否为唯一的,例如:

    unique:table,field,except,pk
// 表示验证name字段的值是否在user表(不包含前缀)中唯一 
   'name' => 'unique:user',  

// 验证其他字段 
   'name' => 'unique:user,account',  

// 排除某个主键值  
   'name' => 'unique:user,account,10', 

// 指定某个主键值排除  
   'name' => 'unique:user,account,10,user_id',

  如果需要对复杂的条件验证唯一,可以使用下面的方式:

 // 多个字段验证唯一验证条件
  'name'   => 'unique:user,status^account',
  // 复杂验证条件
  'name'   => 'unique:user,status=1&account='.$data['account'],

  验证某个字段的值等于某个值的时候必须,例如:

    requireIf:field,value
// 当account的值等于1的时候 password必须
  'password'=>'requireIf:account,1'

  验证某个字段有值的时候必须,例如:

    requireWith:field
 // 当account有值的时候password字段必须
  'password'=>'requireWith:account'

转载于:https://www.cnblogs.com/xuzhengzong/p/11614772.html

百度网盘下载提速

总所周知百度网盘对于没得会员用户的下载速度是很不友好的,下载一个文件能达到200kb/s就很不错了,虽然每次下载文件都有一次免费的试用机会

对于小文件的下载还是可以的,但一些大文件就显得无足轻重了。那么除了开通会员来提速外还有其他提速方式吗?

当然是有的啦,在百度云的设置-传输中有个下载提速的选项,可能有很多小伙伴不知道这个咋个使用的.

设置好后重新打开百度网盘,下载文件时会提示开启下载提速,点击开启就可以了。

这个速度跟SVIP的下载速度没得撒子区别了,不用开会员也能享受会员的下载速度。

这个不是破解了百度网盘,网盘是官方的,欢迎大家来留言哦!

该文章为小编原创,转载请注明出处!!!

PHP多维数组指定列转换成一维数组

PHP中对多维数组特定列的提取,是个很常用的功能,正因为如此,PHP在5.5.0版本之后,添加了一个专用的函数array_column()。当然,如果你的PHP版本低于5.5.0,就得用别的方法处理了。

例如,对于以下这个数组:

$user = array(
    '0' => array('id' => 100, 'username' => 'a1'),
    '1' => array('id' => 101, 'username' => 'a2'),
    '2' => array('id' => 102, 'username' => 'a3'),
    '3' => array('id' => 103, 'username' => 'a4'),
    '4' => array('id' => 104, 'username' => 'a5'),
);

我们要提取其中的 usename 列,变成:

$username = array('a1', 'a2', 'a3', 'a4', 'a5');

方法有以下几种。

1 array_column函数法

用PHP内置的 array_column() 函数是最简单的方法,限制是PHP版本必须是5.5.0及以上版本,方法:

$username = array_column($user, 'username');

2 array_walk函数法

array_walk()函数使用用户自定义函数对数组中的每个元素做回调处理,实现当前功能的方法:

$username = array();
array_walk($user, function($value, $key) use (&$username){
    $username[] = $value['username'];
});

3 array_map函数法

array_map()函数和array_walk() 作用类似,将回调函数作用到给定数组的单元上。

$username = array();
array_map(function($value) use (&$username){
    $username[] = $value['username'];
}, $user);

实际使用时,我们可以用array_map()写出和PHP内置array_column()一样功能的函数:

/**
 * 获取二维数组指定的一列,并以一维数组格式返回
 * 作用和PHP5.5.0中的array_column()函数一样
 * @param $input array 需要取出数组列的多维数组(或结果集)
 * @param $column_key string 需要返回值的列,它可以是索引数组的列索引,或者是关联数组的列的键。 也可以是NULL,此时将返回整个数组
 * @param $index_key string 作为返回数组的索引/键的列,它可以是该列的整数索引,或者字符串键值。
 * @return array|null
 */
function array_column($input, $column_key, $index_key = null) {
    $arr = array_map(function($d) use ($column_key, $index_key) {
        if (!isset($d[$column_key])) {
            return null;
        }
        if ($index_key !== null) {
            return array($d[$index_key] => $d[$column_key]);
        }
        return $d[$column_key];
    }, $input);

    if ($index_key !== null) {
        $tmp = array();
        foreach ($arr as $ar) {
            $tmp[key($ar)] = current($ar);
        }
        $arr = $tmp;
    }
    return $arr;
}

4 foreach循环法

foreach循环相对上面的方法效率稍微低一些,但简单容易理解。

$username = array();
foreach ($user as $value) {
    $username[] = $value['username'];
}

5 array_map变种

方法如下,意为把$user数组的每一项值的开头值移出,并获取移除的值作为新数组。注意此时新数组$username的键仍是原数组$user的键,如下。

$username = array_map('array_shift', $user);

注意:该功能会获取$user中的 id 列,而不是 username 列。

另外,如果需要获取二维数组每一项的开头列或结尾列,也可以这样做:

$username = array_map('reset', $user);
$username = array_map('end', $user);

这三个变种方法作用比较局限,仅在获取第一列或最后一列的时候有用,在复杂的数组中就难以发挥作用了。

原文:https://www.awaimai.com/885.html

【破解】未上锁的房间1-4集合

《未上锁的房间 The Room》 是一款由Fireproof Games推出的3D密室逃脱类游戏,为你带来一段充满创意,离奇古怪的旅程,旅程里有唯美的场景,有危险的陷阱也有神秘的氛围,当然少不了引人入胜的谜题。游戏的主角在一个封闭的房子里醒来,然后想尽各种办法出去,随着剧情的深入,更大的阴谋就会浮出水面。The Room在开发的时候力求谜题更加深入,玩家将面对的可能是很难的谜题。作为一款同类型的密室逃脱类作品,该作在难度上达到了较高的水准,且游戏全英文更是增添难度,游戏设有四大章节,内容丰富。

游戏支持安卓4.2到安卓8.1的机型,更高的有些可能安装不起,不过我的手机是安卓10的还可以玩的

链接:https://pan.baidu.com/s/1lE8nwq2jeXE8U61bx1j7Dg
提取码:s759