js 找出多维对象中的key值 原画与动画有什么区别?
原画与动画有什么区别?
原画是指动画创作中一个场景动作开始和结束的画面,以线稿的形式画在纸上。阴影和分色的水平线也在这一步画出。所以有人翻译为k
echarts使用详解?
支持数据类型,包括二维表、键值和其他数据源。常见的键值格式数据,比如json和HashMap,都是键值数据。...
PHP多维数组根据值搜索对应的键,你一般用什么办法?
简介我们已经解释了很多PHP数组操作的参考场景。今天,我们将分享这些知识,并讨论如何按值搜索并返回多维数组的索引值。
在学习时间的初期,我们习惯按照自己的本能去写代码,下意识的开始使用for循环来遍历数组,然后一个一个的比较。如果值相等,我们将返回索引值。如果不匹配,就不存在。
如果原始数组是如下所示的关联数组。
程序逻辑非常简单。让 让我们用代码来实现它:
函数searchForId($id,$ array){ foreach($ array as $ key gt $ val){ if($ val[uid]$ id){ return $ key } }返回null }
这个函数接收一个值和一个数组,如果匹配就返回数组的索引,如果不存在就返回null。因为第一级结构没有手动指定索引值,所以它默认为从0开始的数字索引。
它是这样工作的:
$id searchForId(100,$userdb)
执行之后,输出应该是0。
当然,上面写的函数都是通用的,特殊情况要随机应变。为了顶端显然$userdb关联数组的结构更直观,配合PHP的内置函数操作更快捷。
我们只需要先取出uid列的所有元素,因为上层结构是默认的数值索引,所以这里不需要手动指定索引值;然后,在提取的数组中搜索值,并使用array_search执行return键。
总结成代码,就一行:
$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($us:_)
我是@程序员 的助手,我继续分享我的编程知识。欢迎关注。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。