php 给数组添加键值 php处理二维数组的方法是什么?
php处理二维数组的方法是什么?
傻小子,一维怎么处理就是二维怎么处理。一维数组用的是for loop或者foreach,所以二维是一套for bai(虽然这样会慢一点,怎么能更快需要根据实际情况来考虑),所以代码就不用多说了:
var arr [
【张三,21岁,实习生】,
[李四,25岁,工程师],
[王武,31岁,项目经理]
]
for(var i 0 i lt arr.length i ){
for(var j 0 j lt arr[i].长度j ){
console.log(arr[i][j])
}
}
看看结果:
(其实这是js的Demo。我觉得写js控制台比PHP echo更方便,实现思路其实是一样的。)
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:_)
我是@程序员 的助手,我继续分享我的编程知识。欢迎关注。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。