您的位置:首页 > 数码常识数码常识

php三维数组遍历(phpforeach遍历二维数组)

2025-05-13人已围观

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

  phpforeach遍历二维数组引言

  学习时间

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

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

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

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

  使用起来是这样的:

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

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

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

  总结为代码,就一行:

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

  深入讨论

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

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

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

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

  再进一步。

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

  写在最后

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

  Happy coding :_)

  上面就是小居数码小编今天给大家介绍的关于(phpforeach遍历二维数组)的全部内容,希望可以帮助到你,想了解更多关于数码知识的问题,欢迎关注我们,并收藏,转发,分享。

  94%的朋友还想知道的:

  怎么计算数组中元素的个数(PHP如何计算数组中元素的个数)

  PHP数组转字符串教程(php字符串转字节)

  php一维数组排序教程+(php多维数组排序函数)

  c语言数组怎么初始化(c语言数组如何初始化为0)



  154621
 

很赞哦! ()

随机图文