我有一个数组如下搜索值嵌套数组
array(2) {
["operator"] => array(2) {
["qty"] => int(2)
["id"] => int(251)
}
["accessory209"] => array(2) {
["qty"] => int(1)
["id"] => int(209)
}
["accessory211"] => array(2) {
["qty"] => int(1)
["id"] => int(211)
}
}
我试图找到一种方法来验证一个ID值的阵列和返回布尔中存在。我试图找出一个不需要创建循环的快速方法。使用in_array函数不起作用,而且我也读到它很慢。
在PHP手册中,有人推荐使用flip_array(),然后是isset(),但我无法让它适用于二维数组。
做这样的事情
if($array['accessory']['id'] == 211)
也为我工作,但我需要匹配包含附件的所有键 - 不知道该怎么做
不管怎么说,我在圈子里打转,并可以使用一些帮助。 这似乎应该很容易。谢谢。
我打算建议的一个PHP函数是'array_walk_recursive',它不需要你做一个循环。但是,如果您的'key'具有数组值,那么该函数不起作用,就像您的那样。循环可能是唯一的方法。我可以问为什么没有循环? – 2010-04-22 18:25:03
@Anthony Forloney:我有点困惑。这个功能应该完全符合OP的要求。你能更好地解释为什么它不起作用吗?我看到的唯一问题是,即使匹配已经找到,它也会遍历所有值。 – 2010-04-22 18:28:01
当我检查值是否存在时,它已经循环了id(包含在一个对象中)的所有值以匹配。我只是想缩短搜索时间。 – dardub 2010-04-22 18:30:37