您好,登錄后才能下訂單哦!
本篇內容主要講解“php如何找出數組最小的幾個元素”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“php如何找出數組最小的幾個元素”吧!
實現步驟:1、利用asort()函數對數組按照鍵值進升序排序,語法“asort(原數組)”,排序后最小的元素就集中在數組的開頭;2、利用array_slice()函數從數組開頭截取N個最小元素即可,語法“array_slice(排序后數組,0,N)”。
本教程操作環境:windows7系統、PHP8.1版、DELL G3電腦
在PHP中,可以利用asort()函數和array_slice()函數來找出數組最小的N個元素。
實現思想:
將數組重新排序,數組元素從小到大的升序排序。(這樣最小的元素就在數組的開頭)
直接從數組kait截取N個數組元素即可。
實現步驟:
1、利用asort()函數對數組按照鍵值進升序排序
<?php
header('content-type:text/html;charset=utf-8');
$arr=array(34,3,-1,-6,42,12,1);
echo "原數組:";
var_dump($arr);
asort($arr);
echo "升序排序后:";
var_dump($arr);
?>
可以看到,排序后,最小的元素就在數組的開頭,只需要按照需要截取指定個數即可。
步驟2:利用array_slice()函數從數組開頭截取N個元素
array_slice()函數是PHP提供的用來截取數組的一個函數
想要從數組開頭截取N個元素,只需要將第二個參數設置為0,第三個參數設置為元素個數N即可。
array_slice(排序后數組,0,N)
示例:獲取數組最小的2個、3個、4個元素
<?php
header('content-type:text/html;charset=utf-8');
$arr=array(34,3,-1,-6,42,12,1);
echo "原數組:";
var_dump($arr);
asort($arr);
echo "升序排序后:";
var_dump($arr);
echo "獲取數組最小的2個元素:";
$result = array_slice($arr,0,2); //截取數組前2位的元素
var_dump($result);
echo "獲取數組最小的3個元素:";
$result = array_slice($arr,0,3); //截取數組前3位的元素
var_dump($result);
echo "獲取數組最小的4個元素:";
$result = array_slice($arr,0,4); //截取數組前3位的元素
var_dump($result);
?>
擴展知識:函數介紹
1、asort()函數
asort()函數會根據關聯數組的鍵值進行升序排序,且不會修改原數組中的鍵名。
asort($array,$sortingtype)
asort()函數有兩個參數:$array(必須)和$sortingtype(可省略)。
其中,$sortingtype參數用來定義函數排序的模式,指定如何比較數組的元素/項目,默認值為“SORT_REGULAR”。
$sortingtype參數可以設置為下面這些值:
0 = SORT_REGULAR:正常比較數組元素,不改變其類型(默認值);
1 = SORT_NUMERIC:將數組元素當作數字來處理;
2 = SORT_STRING:將數組元素當作字符串來處理;
3 = SORT_LOCALE_STRING:基于當前的區域設置(可通過 setlocale()進行更改),把數組元素當作字符串比較。
4 = SORT_NATURAL:和 natsort() 類似對每個數組元素以“自然的順序”對字符串進行排序,是 PHP5.4.0 中新增的。
5 = SORT_FLAG_CASE:能夠與 SORT_STRING 或 SORT_NATURAL 合并(OR 位運算),不區分大小寫排序字符串。
2、array_slice()函數
array_slice()函數可以從數組中提取出一個片段
array array_slice ( array $arr , int $start [, int $length = NULL [, bool $preserve_keys = false ]] )
參數說明:
arr 表示要截取的數組。
start 表示開始截取的位置(下標):
如果 start 為正數,則從前往后截取。
如果 start 為負數,則從距離 arr 末端 -start 的位置開始,從后往前截取。例如 -2 意味著從數組的倒數第二個元素開始。
length 是可選參數,表示截取長度:
如果 length 為正數,那么表示截取的元素個數;
如果 length 為負數,那么截取的片段將終止在距離數組末端 length 的位置;
如果省略,那么將從 start 位置開始,一直截取到數組的末尾。
preserve_keys 是可選參數,規定是否保留原來的鍵名,默認為 false,也即不保留;如果設置為 true,將保留原有的鍵名。
注:array_slice()函數不會改變原數組
示例1:參數$start
<?php
header("Content-type:text/html;charset=utf-8");
$arr = array(10,12,20,25,24);
echo "原數組:";
var_dump($arr);
echo "截取的數組片段:";
$result = array_slice($arr,2);
var_dump($result);
$result = array_slice($arr,-2);
var_dump($result);
?>
示例2:參數$length
<?php
header("Content-type:text/html;charset=utf-8");
$arr = array(10,12,20,25,24);
echo "原數組:";
var_dump($arr);
echo "截取的數組片段:";
$result = array_slice($arr,1,1);
var_dump($result);
$result = array_slice($arr,1,-1);
var_dump($result);
?>
示例3:參數$preserve
表示是否保留原來的鍵名,默認值為false,也即不保留;如果設置為 true,將保留原有的鍵名。
<?php
header("Content-type:text/html;charset=utf-8");
$arr = array(10,12,20,25,24);
echo "原數組:";
var_dump($arr);
echo "截取的數組片段:";
$result = array_slice($arr,1,1,true);
var_dump($result);
$result = array_slice($arr,1,-1,true);
var_dump($result);
?>
到此,相信大家對“php如何找出數組最小的幾個元素”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。