php怎麼找出陣列最小的幾個元素

青灯夜游
發布: 2023-03-16 22:42:01
原創
1870 人瀏覽過

實現步驟:1、利用asort()函數對數組按照鍵值進升序排序,語法“asort(原始數組)”,排序後最小的元素就集中在數組的開頭;2、利用array_slice ()函數從陣列開頭截取N個最小元素即可,語法「array_slice(排序後陣列,0,N)」。

php怎麼找出陣列最小的幾個元素

本教學操作環境:windows7系統、PHP8.1版、DELL G3電腦

在PHP中,可以利用asort()函數和array_slice()函數來找出陣列最小的N個元素。

實作想法:

  • 將陣列重新排序,陣列元素從小到大的升序排序。 (這樣最小的元素就在陣列的開頭)

  • 直接從陣列kait截取N個陣列元素即可。

實作步驟:

#1、利用asort()函數對陣列依照鍵值進升序排序

<?php
header(&#39;content-type:text/html;charset=utf-8&#39;);   
$arr=array(34,3,-1,-6,42,12,1);
echo "原数组:";
var_dump($arr);
asort($arr);
echo "升序排序后:";
var_dump($arr);
?>
登入後複製

php怎麼找出陣列最小的幾個元素

可以看到,排序後,最小的元素就在陣列的開頭,只需要按照需要截取指定個數。

步驟2:利用array_slice()函數從陣列開頭截取N個元素

array_slice()函數是PHP提供的用來截取數組的一個函數

想要從陣列開頭截取N個元素,只需要將第二個參數設為0,第三個參數設定為元素個數N即可。

array_slice(排序后数组,0,N)
登入後複製

範例:取得陣列最小的2個、3個、4個元素

<?php
header(&#39;content-type:text/html;charset=utf-8&#39;);   
$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);

?>
登入後複製

php怎麼找出陣列最小的幾個元素

##擴充知識:函數介紹

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);
?>
登入後複製

php怎麼找出陣列最小的幾個元素

範例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);
?>
登入後複製

php怎麼找出陣列最小的幾個元素

範例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怎麼找出陣列最小的幾個元素

推薦學習:《

PHP影片教學

以上是php怎麼找出陣列最小的幾個元素的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板