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