首頁  >  文章  >  後端開發  >  PHP如何對所給予的IP數進行排序

PHP如何對所給予的IP數進行排序

藏色散人
藏色散人原創
2021-08-13 11:02:123324瀏覽

關於PHP中排序問題,大家可以先閱讀PHP入門手冊中的《PHP 數組排序》章節,在對數組排序一定的了解之後,本文就來給大家介紹如何對所給的ip進行排序。

下面就開始本文的主題內容:

PHP程式碼如下:

<?php
function sort_subnets ($x, $y) {
    $x_arr = explode(&#39;.&#39;, $x);
    $y_arr = explode(&#39;.&#39;, $y);
    foreach (range(0,3) as $i) {
        if ( $x_arr[$i] < $y_arr[$i] ) {
            return -1;
        }
        elseif ( $x_arr[$i] > $y_arr[$i] ) {
            return 1;
        }
    }
    return -1;
}

$subnet_list =
    array(&#39;192.169.12&#39;,
        &#39;192.167.11&#39;,
        &#39;192.169.14&#39;,
        &#39;192.168.13&#39;,
        &#39;192.167.12&#39;,
        &#39;122.169.15&#39;,
        &#39;192.167.16&#39;
    );
usort($subnet_list, &#39;sort_subnets&#39;);
var_dump($subnet_list);

結果是:

array (size=7)
  0 => string &#39;122.169.15&#39; (length=10)
  1 => string &#39;192.167.11&#39; (length=10)
  2 => string &#39;192.167.12&#39; (length=10)
  3 => string &#39;192.167.16&#39; (length=10)
  4 => string &#39;192.168.13&#39; (length=10)
  5 => string &#39;192.169.12&#39; (length=10)
  6 => string &#39;192.169.14&#39; (length=10)

PHP如何對所給予的IP數進行排序

這裡跟大家介紹上述程式碼中涉及到函數:

explode()函數的作用是使用字串分割另一個字串,並且傳回由字串組成的數組,語法是“explode(separator,string,limit)”,"separator" 參數不能是一個空字串。

参数分别表示:
separator:在哪里分割字符串。
string:要分割的字符串。
limit可选:所返回的数组元素的数目。
可能的值有:
大于0:返回包含最多 limit 个元素的数组;
小于0:返回包含除了最后的 -limit 个元素以外的所有元素的数组;
0:会被当做 1, 返回包含一个元素的数组。

range()函數用於建立一個包含指定範圍的元素的數組,語法是「range(low,high,step)」;該函數傳回一個包含從low 到high 之間的元素的陣列;如果low 參數大於high 參數,則建立的陣列將是從high 到low。

usort()用於使用使用者自訂的比較函數對陣列進行排序,語法是“usort(array,myfunction);”,如果成功則傳回TRUE,如果失敗則回傳FALSE。

最後推薦給大家最新、最全面的《PHP影片教學》~快來學習吧!

以上是PHP如何對所給予的IP數進行排序的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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