但是如果你只知道一个sort(),不知道 asort(),ksort(),usort(),那么你也只能长点腋毛了。。!
sort()
大略干脆的小函数,一用,刷!
你数组里的值就乖乖从小到大排好!
如果你不知道它,请拜会我第一句话的疑问。但是现在恭喜你,你知道了,看栗子完事儿:
$小数组=['3只松鼠','2我','8奥巴马','6川普']; //一个普通的小数组

sort($小数组); //普通地被sort用了一下
var_dump($小数组); //输出,看到谁是老几了吗?
谁前谁后如你所料:
一个你必须该当懂的排序小坑
上边要被排的成员们,如果编号里边一位数与两位数都有,比如:
$小数组=['3只松鼠','2我','8奥巴马','6川普','33岁的御姐']; //多了位御姐
33比奥巴马还要大啊,我们用sort排个序看看吧:
什妈?为什么33会排在2和3之间??这确定是个坑。
缘故原由是它会先比较数值的第一位字符,再比较第二位字符。懂了吗?没懂请看:
第一位字符都是数字:2 < 3 ==3 <6 <8
把稳中间两个3本来是并列的,以是再决牝牡只好用第二个字符了: 3 < 只
御姐的第二个字符是3,松鼠的第个二个字符是“只”
排序小知道,字库的奥秘
有时我们排一下中文,创造他的规率彷佛是按拼音,可有时又不是,WHY什么?
见告你少年,由于它是按笔墨在字库里陈设的顺序排列的。在字库里的汉字虽然大致和拼音有关,可不绝对。
比如上边那个例子里,是由于在字库里边,数字小于英文,英文小于汉字。以是3比“只”小。
对了,要办理上一个例子那种缺点,把稳让你的数字位数保持同等就好排序了!
一位数前边加0。
02我<03只松鼠<06川普<08奥巴马<33御姐
奥巴马终于站到了御姐前边!
sort()前边加个r
便是反着排,从大到小咯:rsort()
r便是英文reverse,“反过来”的缩写,把稳所有的排序都有这个小秘密,有加个r的版本。
联合数组难搞?asort()上在大数据的时期,连数组里的值我们也要起个名字,叫键名是不。要不数据不好定位啊。
这种数组有个牛逼的官名儿:联合数组。
有个名字便是联合数组了!
比如:$小数组=['S级'=>'3只松鼠','A级'=>'2我','E级'=>'8奥巴马','M级'=>'6川普','D杯'=>'33岁的御姐']
看我们的数组成员有了名字,权当我对它们的评级。
可是sort往后我创造名字都没了!
!
!
又变成了0123……的序号!
!
不要焦急,少年,只要用asort(),你的数组排完了还是那个联合数组!
(小秘密:a便是联合的英文缩写,但我不见告你是哪个单词!
)
asort()的反排是arsort()
把稳,r是加在sort之前的,不是a之前。所有的r都紧跟sort,OK?
我要按键名排序!ksort()
k,便是key,便是键(不是贱!
)
以是如果你想把数组成员按上边的键名称(我那个A到D的分级)来排序,见告我,用ksort还是asort?
其余反向排键名称的函数,该当是rksort还是krsort?
看好你!
我想按自己的想法排列我的小弟们!
usort()
U便是you,便是你!
你说了算。
谁在前?
这次我认为,名字越长的才是爸爸,以是名字越长越往前,那么我们就要写个函数。
在函数里我们只比较两个值,怎么比较我们定逻辑,然后让usort()调用就好。
函数里,返回负数意味着让前边的值和后边的值比起来时,前边的往前。而是正数则今后排。
把稳看例子里的注释,哥们我写累了,实在和上边比就多了一个函数:
$小数组=['3只松鼠','2我','8奥巴马','6川普','33岁的御姐']; //一个普通的小数组
function longNameIsFather($a,$b){
$lengthA=strlen($a); //第一个数值有几个字儿
$lengthB=strlen($b); //第二个数值有几个字儿
if($lengthA>$lengthB) //来比比谁多
return -1; //A多那就让A往前放,返回负数
else
return 1; //A少那让A今后放,正数是后边
}
usort($小数组,\公众longNameIsFather\"大众); 第二个参数用字符串写下你要调的函数
var_dump($小数组); //输出,看到谁是father了吗?
当作果,谁是爸爸?:
我彷佛弄反了!
!
usort()有kusort()
便是不比值,比键啊。要记住这个,就要理解一个道理,这个天下上,有时候便是要比贱。
其余usort和kusort没有r。么么哒。
设想一下你不知道以上sort系列,我们处理数据时要不要掉头发,嗯???
你的朋友们不知道,要不要掉!
嗯???
现在,点赞,急速!
然后转给他们看
记住,对技能的精益求精,是一种极致(GEEK)的精神!
!
!
!
爱我。
想听什么,每一个哀求我都记录在案的,在评论见告我!