實現步驟:1、利用asort()函數對陣列按照鍵值進升序排序,語法「asort(原陣列)」,排序後最小的元素就集中在陣列的開頭;2、利用array_slice()函數從陣列開頭擷取N個最小元素即可,語法「array_slice(排序後陣列,0,N)」。
php入門到就業線上直播課:進入學習
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API偵錯工具:
本教學操作環境: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 ]] )
登入後複製
引數說明:
注: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怎麼找出陣列最小的幾個元素的詳細內容,更多請關注TW511.COM其它相關文章!