首页 开发编程 正文

php怎么判断id值

PHP多维数组根据值搜索对应的键?因为第一层结构没有手动指定索引值,使用PHP内置的函数操作起来,所以此处不用手动指定索引值;使用array_search执行返回键。只需改用array_keys函数即可:...

php怎么判断id值,PHP多维数组根据值搜索对应的键?

引言

我们讲解了很多种PHP数组操作的引用场景。今天我们接着分享这方面的知识,说一说对于多维数组,如何根据值搜索,并返回数组的索引值。

学习时间

最开始我们习惯于跟随本能写代码,下意识地开始用 for 循环,对数组进行遍历,然后挨个比对,如果值相等,就返回索引值,如果没有匹配上,就是不存在。

假如原始数组是如下图一样的关联数组。

程序逻辑很简单,我们使用代码实现一下:

function searchForId($id, $array) { foreach ($array as $key => $val) { if ($val['uid'] === $id) { return $key; } } return null; }

这个函数接收一个值,与数组,如果匹配上就将数组的索引返回,如果不存在则返回 null。因为第一层结构没有手动指定索引值,所以默认是从0开始的数字索引。

使用起来是这样的:

$id = searchForId('100', $userdb);

执行结束后,输出应该为0。

当然了,上面写的函数具有通用性,对于特殊的案例,我们应该随机应变。对于上述 $userdb 关联数组的结构,显然,使用PHP内置的函数操作起来,更为直观和快捷。

我们只需要先把 uid 列的元素全部取出,因为上层结构是默认数字索引,所以此处不用手动指定索引值;然后,在提取的数组中搜索值,使用 array_search 执行返回键。

总结为代码,就一行:

$key = array_search('100', array_column($userdb, 'uid'));

执行结果跟上面的 searchForId 函数一致。

深入讨论

上面的函数和第二个解决方法会有问题,就是仅仅返回了第一个匹配的键。像下面这样写,肯定问题不大:

$key = array_search(40489, array_column($userdb, 'uid'));

但是如果在数组中有重复的值,而 uid 列也不唯一,要把所有的匹配结果都返回,该怎么做呢?不会又要修改 searchForId 函数,重新倒腾?

其实大可不必,PHP提供了这样的功能,只需改用 array_keys 函数即可:

$keys = array_keys(array_column($userdb, 'uid'), 40489);

你肯定经常使用 array_keys 函数用于返回整个数组的键,但是它的第二个参数,恰恰是在指定时,拥有可搜索的功能。这确实有些冷门。

再进一步。

上面返回的是数组对应的键,那如果想要键和值一并关联返回,一行代码能搞定吗?可以的,修改一下就行了,使用 array_combine 函数将键和值组装起来返回:

$keys = array_keys(array_combine(array_keys($userdb), array_column($userdb, 'uid')),40489);

写在最后

本文通过特定的数组搜索需求,延伸到手动造轮子,把特殊的特性推向一般,并使用PHP内置的数组处理函数,进行功能裁切,简洁而高效。善用数组函数是硬功夫。

Happy coding :_)

我是 @程序员小助手 ,持续分享编程知识,欢迎关注。

这个到底是谁?

画师凪白みと的原创角色,第一张剣士,第二张Rain liliy。

https://touch.pixiv.net/member_illust.php?id=8189060

这是画师的网站,你可以去看下。

测量气体体积装置有哪些?

1.输出压力:输出压力无限制,只需满足组比入口压力小于3公斤即可。

2.比例调节简便方便:我们的设备通过精密配比装置以及精确的加工工艺,确保了混配比例精度不变,且将非线性的气体混配比例曲线转化成控制面板上的灯比例均分刻度旋钮,确保 360°刻度完全对应,随意设定需要的比例值,时间需要几秒钟。而其他厂家的设备需要不断调节流量计、减压器的比例值调节,流量计、减压器受流量、压力影响不断调节,并参照后端的分析仪器数值调节流量计的流量,来实现比例调节,这个过程复杂多变,难以实现比例的稳定性长久不变。

3.使用环境要求低:我们的设备可以满足各种恶劣的环境使用。并保证精度不变,稳定性不变,因此我们的精度是全天性的。

4.满足流量波动变化:即使客户后端由于生产计划的变更,气体使用量产生变化、波动大,这样的条件下,我们的设备也可以确保我们承诺的高精度和稳定性。而其他厂家使用流量比就实现不了大的变化(因为流量计有致命的缺点;最大流量和最小流量有比例值;比如:最大 1000m³/h,流量计最小计量点为50或100m³/)所以在使用时产生不配比或配比不准,尤其是在工厂夜班或产品有必要少数工人工作时产生。

5.同等设备同样压力条件下,我们设备混配气体的流量大(真正实现了,低压大流量配比。)

6.维护简单【视界网】气体配比装置优势http://www.shijiezx.com/news/show.php?itemid=4b455f070a3142b5

你用PHP写过哪些好玩的东西呢?

我用php+html5写过一个定位软件。

手机QQ浏览器打开我做的程序http://www.haiyangtop.net/dw/index.php?id='你起的名',好比是:http://www.haiyangtop.net/dw/index.php?id=123。当然你用手机UC或其它浏览器也可以,只要手机浏览器有分享到微信功能就可以,然后把此网页分享到你女朋友的微信里。

2、过一段时间,等你女朋友打开这个链接后,然后你再打开http://www.haiyangtop.net/dw/你起的名id的.txt。

上文我发送的链接是:

http://www.haiyangtop.net/dw/index.php?id=123

哪么这里我自然要打开的是:

http://www.haiyangtop.net/dw/123.txt 了。

如果你发送的是:

http://www.haiyangtop.net/dw/index.php?id=haiyangtop

哪么你要打开

http://www.haiyangtop.net/dw/haiyangtop.txt

如果你实在找不到,你就先打开www.haiyangtop.net,再点dw列目录。

我们就获得了女朋友所在位置的经纬度了。另外,你要注意123.txt里的时间,明白哪个是你女朋友的经纬度。还有,起一个你想要的特殊ID名字(请用英文和数字),不要用我文章中的123了,方便获得的文件名和别人都不重复,否则跑到别人获的位置信息了。

3、我们去http://www.gpsspg.com/maps.htm这里,输入你获得的维度和精度数字进行查询。注意这两个数字要用逗号分隔。这下一查询,绝对把你女朋友定位准了,误差我想不会超过500米的。

原文我以前发表在海阳顶端头条号里有空大家看下吧。

为什么海阳顶端这么好的头条号没有人关注呢?唉,我转战悟空问答,来拉点粉丝吧。

很多人也私信问我的源码。我用的程序修改自土司论坛里的风在指尖的源码。在此向他表示感谢。

源码在:http://www.haiyangtop.net/dw/index.php.txt

phpMyAdmin登陆账户密码如何正确配置?

首先在根目录找到config.sample.inc.php复制一份文件名改为config.inc.php(如果已经存在 config.inc.php 文件,则直接修改该文件即可)。打开config.inc.php 找到 $cfg['Servers'][$i]['auth_type'],将

$cfg['Servers'][$i]['auth_type'] = 'cookie';

改成

$cfg['Servers'][$i]['auth_type'] = 'config';

然后在下面追加如下代码:

fg['Servers'][$i]['user'] = 'root'; // 设置的mysql用户名$cfg['Servers'][$i]['password'] = '123456'; // 设置的mysql密码

取消phpMyAdmin自动登录

只需把

$cfg['Servers'][$i]['auth_type'] = 'config';

改成

$cfg['Servers'][$i]['auth_type'] = 'cookie';

保存即可。

$cfg['Servers'][$i]['auth_type'] 有三个待选项值,即 cookie、http、config。用的比较多的是 cookie与config。当在正式环境时,用 cookie,要求用户必须输入正确的用户名与密码,而在本地测试服务器时,一般用 config,省得session失效后又得输入用户名与密码,以节省开发时间。

本文转载自互联网,如有侵权,联系删除