比如利用数组的时候,你有没有费尽你的心思去实现各种排序,检讨元素是不是存在、想让它们做一件知足你小欲望的操作或需求。
写了半天终于实现,晚上洗头时彷佛多掉了几根头发,而你一周的假期常日小于四个半天!
·
不会用工具就会掉头发
数一数你可能自己办理过或将要办理的那些问题:
我要按某种规则显示我的数据,以是我要排序我的数组!
各种排序!
!
我想要确定一下数组里边有没有内奸,谁是年夜大好人,谁是我要的那块宝!
我每次都要循环都要双重和多重循环去找肿么办!
!
好多数组啊,他们是有关系的我知道,比如在右手粗壮组和男性组里一定能筛选出单身25年以上的青年,这种每天碰着的逻辑没有一个快捷办法吗?
如果数组是我的臣子,我多想扔给他们一个宰相,于是谁该干嘛就都被出理了,总之我为每个大臣写一个CASE然后循环派给他们好累,我不是我程序里的天子吗?我的宰相何在?
对了,我想创建一个数组,值就在那里,逻辑彷佛清楚,可是这么清楚的逻辑还要我写转换办法?
我想用一句话操(作)我的数组,而不是那么啰嗦,帅帅的!
……
以上这些问题你都办理地很完美?韶光宝贵去看我别的文章!
!
以上问题你都想办理?这是一个小系列请多翻几篇哥哥我的文章!
这篇先从基本聊
找内奸的方法,in_array()、array_key_exists()in_array()太特么常用的逻辑,你是不是常常要看看这个数组里有没有某个“坏人”,找到他,找到的话就要整点啥,或者全体数组不要了,坏人再见。我只须要纯洁。
那么你在某些很多措辞里学习过的博学的你,或者智商非凡,用了循环乃至双重循环去一个一个比较你的那些马仔。
不如大略干脆地甩下这么一句话: in_array();
急速返回一个真或假见告你有还是没有,反正有一个马仔是内奸全部砍去世,现在我们不关心详细谁是。
来看栗子:
$arr=['Jingcha','Neijian','xiaoMing', '66',]; //你有4个叫不上名字的马仔,他们组成了一个数组
$re=in_array('NeiJian',$arr); //in_array一比急速得出结果
var_dump($re); //返回结果为真,那么你的马仔团队确实不纯洁了
好了,便是这么用,PHP函数里第一个参数一样平常都是放着你要找的东西,第二个是指你要在哪找——被找的数组。
找到内奸了以是现在把你自己的马仔全部砍去世吧,说好的逻辑。
全都要去世!
还有一种情形下,你的马仔会被你冤去世,他不是内奸却被认为是内奸。
比如你心知肚明,66是内奸,但这个66是数字66不是字符串,作为大佬你当然知道数字和字符串的差异对不对!
还是上边那个例子如果你把66去掉引号改成数字会创造没有差异,不要紧张,我的in_array很好用,只须要再加第三个参数true就可以了:
$arr=['Jingcha','Neijian','xiaoMing', '66',]; //嗯,我这四个小马仔要磨练磨练
$re=in_array(11,$arr,true); //数字的66?我没这儿没有这么6的人
var_dump($re); //确实没有。完美!
总结一下,第三个参数设为true便是严格区分数据类型,PHP就不会帮你自己动在数字、字符串、布尔值之类型中凑合地混为一谈啦!
key_exists()
PHP的方便之处即是它的龟毛之处,有时同一个函数有两个名字!
这样对我们英语不敏感的某些同学不公正。
array_key_exists()便是当前要谈论的函数其余一个名字。
发音是:XXXXXXXX(没用的东西要打马赛克)
·
是这样啊,真实情形下我们的数组一样平常都是键值对,便是每个数值他有名字!
!
大家都有名字,你有,你的小马仔也有?以是数组成员有名字才对。
以是常见的数组会是这样:
$arr=['xiaoMing'=>'SB', 'hanMeiMei'=>'fine girl', 'huangBo'='BoGe'];
是吧,我们不关心他是什么先,先找找我那一百多马仔里边有没有这个人,假如有的话,我就不给他们讲话了。由于有些人不管你讲什么都能把你呛住:
$arr=['xiaoMing'=>'bear boy', 'hanMeiMei'=>'fine girl', 'huangBo'=>'BoGe']; //用数组代表的我超多的马仔们!
$re=key_exists('xiaoMing',$arr); //找找看有没有这个叫小明的人
var_dump($re); //返回结果为真,看来要把稳了!
离小明远点儿!
key_exists大略地说,便是找找这个数组里有没有键名为指定值的成员。
当然,没有键名的数组,也可以用这个函数,查找指定下标值存不存在啊:
$arr=['bear boy','fine girl','BoGe'];
$re=key_exists(5,$arr);
var_dump($re); //返回结果为假,由于这个数组只有三个元素,最大值是2!
废这么多话,只是希望帮你更随意马虎地理解和记住它们啊。
数组的事还没聊完。等着!
看了我的文章,你就承担了一分要爱我的任务!
逐步来!