我有一個數組如下搜索值嵌套數組
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