首頁  >  文章  >  後端開發  >  用PHP快速傳回不為0的最小整數

用PHP快速傳回不為0的最小整數

藏色散人
藏色散人原創
2021-08-03 16:51:122295瀏覽

在上一篇文章《使用珠算法對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(&#39;intval&#39;, $values), array(0)));
}
print_r(min_values_not_zero(array(-1,0,1,12,-100,1))."\n");

這裡給了一個範例陣列“-1,0,1,12,-100,1”,讓我們看看這組資料回傳不為0的最小整數是哪一個?

結果如下:

用PHP快速傳回不為0的最小整數

如圖,最小整數是-100.

很簡單吧。

附註:

array_map()函數:為數組的每個元素應用回呼函數,返回值是數組,包含 callback 函數處理之後 array (有多個數組時,為 arrays) 對應索引所有元素作為函數的參數。當僅傳入一個陣列時,傳回的陣列會保留傳入參數的鍵(key)。傳入多個數組時,傳回的數組鍵是依序的 integer。

array_diff()函數:用於比較兩個(或更多)陣列的值,並傳回差集。該函數比較兩個(或更多個)數組的值(key=>value 中的value),並傳回一個差集數組,該數組包括了所有在被比較的數組(array1)中,但不在任何其他參數陣列(array2 或 array3 等等)中的數值。

最後推薦大家一個咱們平台的最新免費課程《從0開始進入PHP的世界》~快來學習吧!

以上是用PHP快速傳回不為0的最小整數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn