在上一篇文章《使用珠算法對PHP數組進行排序》中給大家介紹了透過珠數演算法對數組進行排序,本文繼續介紹一個小知識點~
假設有這樣的問題:請你寫一個PHP 函數,傳回不為0 的最小整數。
大家對這樣一個問題,有沒有簡單的思路啊?
其實大家應該都知道在PHP中有一個內建函數min(),就是用來取得回傳一個陣列中的最小值,或是幾個指定值中的最小值。
那我們怎麼透過建立一個PHP函數來取得傳回不為0的最小整數呢?
下面我們要來跟大家介紹具體的實作步驟:
先建立一個PHP範例檔demo.php;
#然後自訂一個min_values_not_zeroh
函數;
完整程式碼如下:
<?php function min_values_not_zero(Array $values) { return min(array_diff(array_map('intval', $values), array(0))); } print_r(min_values_not_zero(array(-1,0,1,12,-100,1))."\n");
這裡給了一個範例陣列“-1,0,1,12,-100,1”,讓我們看看這組資料回傳不為0的最小整數是哪一個?
結果如下:
如圖,最小整數是-100.
很簡單吧。
附註:
array_map()
函數:為數組的每個元素應用回呼函數,返回值是數組,包含 callback 函數處理之後 array (有多個數組時,為 arrays) 對應索引所有元素作為函數的參數。當僅傳入一個陣列時,傳回的陣列會保留傳入參數的鍵(key)。傳入多個數組時,傳回的數組鍵是依序的 integer。
array_diff()
函數:用於比較兩個(或更多)陣列的值,並傳回差集。該函數比較兩個(或更多個)數組的值(key=>value 中的value),並傳回一個差集數組,該數組包括了所有在被比較的數組(array1)中,但不在任何其他參數陣列(array2 或 array3 等等)中的數值。
最後推薦大家一個咱們平台的最新免費課程《從0開始進入PHP的世界》~快來學習吧!
以上是用PHP快速傳回不為0的最小整數的詳細內容。更多資訊請關注PHP中文網其他相關文章!