今天我們來聊一下PHP中的一個非常常用的函數(shù)——findall。PHP的findall函數(shù)主要用于在數(shù)組中查找指定值,并返回所有符合條件的數(shù)據(jù)。通俗來說,就是可以通過這個函數(shù)找到數(shù)組中所有符合條件的值,并返回這些數(shù)據(jù)。接下來,讓我們深入理解一下這個強大的函數(shù)吧。
假設(shè)我們有這樣一個數(shù)組:
$fruit = [ '蘋果', '香蕉', '橘子', '草莓', '葡萄', '蘋果', '檸檬', ];現(xiàn)在,我們需要查找這個數(shù)組中所有的蘋果。我們可以這樣使用findall函數(shù):
$apple = array_keys($fruit, '蘋果'); print_r($apple);輸出結(jié)果如下:
Array ( [0] =>0 [1] =>5 )上面的代碼中,我們使用array_keys函數(shù)找到所有鍵為'蘋果'的鍵名,返回了一個包含蘋果的下標(biāo)的數(shù)組。我們可以看到,這個數(shù)組里面包含了兩個鍵名,分別是0和5,這正是我們要找的蘋果在原數(shù)組里面的下標(biāo)。 當(dāng)然,這只是findall函數(shù)的一個簡單例子,在實際使用中,我們可能需要查找更為復(fù)雜的數(shù)據(jù)。因此,findall函數(shù)還有一些其他的用法可以幫助我們更好地解決數(shù)組查找的問題。比如,我們還可以將findall函數(shù)用于多維數(shù)組的查找中。 假設(shè)我們有這樣一個多維數(shù)組:
$fruit = [ [ 'name' =>'蘋果', 'price' =>5, ], [ 'name' =>'香蕉', 'price' =>3, ], [ 'name' =>'橘子', 'price' =>4, ], [ 'name' =>'草莓', 'price' =>9, ], [ 'name' =>'葡萄', 'price' =>7, ] ];現(xiàn)在,我們需要查找價格在5元及以上的所有水果。我們可以這樣使用findall函數(shù):
$high_price_fruit = array_filter($fruit, function ($arr) { return $arr['price'] >= 5; }); print_r($high_price_fruit);輸出結(jié)果如下:
Array ( [0] =>Array ( [name] =>蘋果 [price] =>5 ) [3] =>Array ( [name] =>草莓 [price] =>9 ) [4] =>Array ( [name] =>葡萄 [price] =>7 ) )上面的代碼中,我們使用了array_filter函數(shù)來過濾出符合條件的數(shù)據(jù)。在這個例子中,我們使用了一個匿名函數(shù)作為第二個參數(shù),并在函數(shù)內(nèi)部判斷了是否滿足價格在5元及以上的條件。通過這樣一個簡單的代碼,我們就可以得到了一個包含符合條件水果的數(shù)組。 正如我們所見,findall函數(shù)十分方便,它可以快速的獲取到指定數(shù)組中的符合條件的全部數(shù)據(jù),并且可以輕松的處理多維數(shù)組查找的問題。今天我們主要介紹了如何使用findall函數(shù)來對普通數(shù)組和多維數(shù)組進(jìn)行查找。相信看完本文,您會更深入理解PHP的findall函數(shù),并學(xué)會更多使用此函數(shù)的技巧。