㈠ php數組隨機排序幾種方法
它的用法也很簡單:array_rand($arr[, $num])$arr == 用來取元素的數組$num == 隨機取下標的個數其中第二個參數 $num 是可選的,默認為1 。注意:它的返回值在第二個參數大於 1 的時候是一個數組;當第二個參數不設或者傳值 1 的時候是一個下標。簡單的示例代碼如下:1、第二個參數不傳值的情況;$arr = Array('a', 'b');$rndKey = array_rand($arr);echo $arr[$rndKey];//輸出 a 或者 b2、第二個參數傳值大於 1 的情況;$arr = Array('a', 'b', 'c', 'd');$rndKey = array_rand($arr, 2);print_r($rndKey]);//輸出一個隨機key的數組
㈡ 求助php:strnatcmp()函數是按照自然排序進行比較的
//該函數實現了以人類習慣對數字型字元串進行排序的比較演算法,這就是「自然順序」。注意//該比較區分大小寫。
//下面的例子展示了該演算法與計算機常規字元串比較演算法(strcmp()所使用的)的區別:
<?php
$arr1=$arr2=array("img12.png","img10.png","img2.png","img1.png");
echo"Standardstringcomparison ";
usort($arr1,"strcmp");
print_r($arr1);
echo" Naturalorderstringcomparison ";
usort($arr2,"strnatcmp");
print_r($arr2);
?>
//以上常式會輸出:
Standardstringcomparison
Array
(
[0]=>img1.png
[1]=>img10.png
[2]=>img12.png
[3]=>img2.png
)
Naturalorderstringcomparison
Array
(
[0]=>img1.png
[1]=>img2.png
[2]=>img10.png
[3]=>img12.png
)
明白了嗎?自然排序,就是平時數數的那個。
ascil碼也是abc··的順序,有大小寫問題。我覺得他們的差別不在於字母,而是數字。字母就相當字元串那樣比的
㈢ php中和值相關的排序有哪些函數
定義和用法
arsort() 函數對關聯數組按照鍵值進行降序排序。
提示:請使用 asort() 函數對關聯數組按照鍵值進行升序排序。
提示:請使用 krsort() 函數對關聯數組按照鍵名進行降序排序。
語法
arsort(array,sortingtype);
參數 描述
array 必需。規定要進行排序的數組。
sortingtype
可選。規定如何排列數組的元素/項目。可能的值:
0 = SORT_REGULAR - 默認。把每一項按常規順序排列(Standard ASCII,不改變類型)
1 = SORT_NUMERIC - 把每一項作為數字來處理。
2 = SORT_STRING - 把每一項作為字元串來處理。
3 = SORT_LOCALE_STRING - 把每一項作為字元串來處理,基於當前區域設置(可通過 setlocale() 進行更改)。
4 = SORT_NATURAL - 把每一項作為字元串來處理,使用類似 natsort() 的自然排序。
5 = SORT_FLAG_CASE - 可以結合(按位或)SORT_STRING 或 SORT_NATURAL 對字元串進行排序,不區分大小寫。
定義和用法
asort() 函數對關聯數組按照鍵值進行升序排序。
提示:請使用 arsort() 函數對關聯數組按照鍵值進行降序排序。
提示:請使用 ksort() 函數對關聯數組按照鍵名進行升序排序。
語法
asort(array,sortingtype);
參數 描述
array 必需。規定要進行排序的數組。
sortingtype
可選。規定如何排列數組的元素/項目。可能的值:
0 = SORT_REGULAR - 默認。把每一項按常規順序排列(Standard ASCII,不改變類型)
1 = SORT_NUMERIC - 把每一項作為數字來處理
2 = SORT_STRING - 把每一項作為字元串來處理
3 = SORT_LOCALE_STRING - 把每一項作為字元串來處理,基於當前區域設置(可通過 setlocale() 進行更改)
4 = SORT_NATURAL - 把每一項作為字元串來處理,使用類似 natsort() 的自然排序
5 = SORT_FLAG_CASE - 可以結合(按位或)SORT_STRING 或 SORT_NATURAL 對字元串進行排序,不區分大小寫
㈣ PHP自動排序
<?php
//fetch lines to array '$lines'
$lines = file('file.txt');
//mp array before sorted;
mp_array($lines);
//filte lines which length great then 50
foreach($lines as $key => $val){
if(strlen($val) > 50){
unset($lines[$key]);
}
}
//sort array $lines by function _f() ;
usort($lines , '_f');function _f($a , $b){
$r = strlen($a) - strlen($b);
if($r != 0){
return $r;
}else{
//
}
}
//function to show contents of array
function mp_array($ary){
$i = 0 ;
foreach($ary as $v){
echo '<li>line #' ,str_pad($i++ , 4 , 0 , STR_PAD_LEFT) , ' : <span style=" font-family: Courier New; "><u>' , $v ,'</u></span>';
}
echo '<hr>';
}
//mp array after sorted;
mp_array($lines);
?>
㈤ php中有哪些排序的內置函數
定義和用法
krsort() 函數對關聯數組按照鍵名進行降序排序。
提示:請使用 ksort() 函數對關聯數組按照鍵名進行升序排序。
提示:請使用 arsort() 函數對關聯數組按照鍵值進行降序排序。
語法
krsort(array,sortingtype);
參數 描述
array 必需。規定要進行排序的數組。
sortingtype 可選。規定如何排列數組的元素/項目。可能的值:
0 = SORT_REGULAR - 默認。把每一項按常規順序排列(Standard ASCII,不改變類型)。
1 = SORT_NUMERIC - 把每一項作為數字來處理。
2 = SORT_STRING - 把每一項作為字元串來處理。
3 = SORT_LOCALE_STRING - 把每一項作為字元串來處理,基於當前區域設置(可通過 setlocale() 進行更改)。
4 = SORT_NATURAL - 把每一項作為字元串來處理,使用類似 natsort() 的自然排序。
5 = SORT_FLAG_CASE - 可以結合(按位或)SORT_STRING 或 SORT_NATURAL 對字元串進行排序,不區分大小寫。
定義和用法
ksort() 函數對關聯數組按照鍵名進行升序排序。
提示:請使用 krsort() 函數對關聯數組按照鍵名進行降序排序。
提示:請使用 asort() 函數對關聯數組按照鍵值進行升序排序。
對關聯數組按照鍵名進行升序排序:"35","Ben"=>"37","Joe"=>"43")
ksort($age);
?>
㈥ PHP For 循環 怎麼能把 數組 從小到大排列呢
用非常典型的冒泡排序即可實現,具體實現思路如下列代碼所示:
<?php
//首先定義一個數組;
$arr=array(100,23,69,2,50,31);
//計算數組的長度;
$length=count($arr);
//外層循環n-1
for($n=0;$n<$length-1;$n++){
//內層循環n-i-1
for($i=0;$i<$length-$n-1;$i++){
//判斷數組元素大小,交換位置,實現從小往大排序
if($arr[$i]>$arr[$i+1]){
$temp=$arr[$i+1];
$arr[$i+1]=$arr[$i];
$arr[$i]=$temp;
}
}
}
print_r($arr);
//Array([0]=>2[1]=>23[2]=>31[3]=>50[4]=>69[5]=>100)
?>
㈦ 為什麼PHP中strnatcmp()函數按照自然排序法時2小於10呢
strnatcmp這個函數是依次比較字元串的編碼值的,
srt這三字字元的是相等的,接下來比較 1 和 2 2比1大,所以返回值是-1
跟你說的那個沒關系,如果硬是要說按照計算機序列來比的話 對 1 和 2 比較時 實際上是對 0x01和0x10做比較 0x10比0x01大
希望我的回答能幫助你。
㈧ php數組隨機排序幾種方法
它的用法也很簡單:array_rand($arr[,
$num])$arr
==
用來取元素的數組$num
==
隨機取下標的個數其中第二個參數
$num
是可選的,默認為1
。注意:它的返回值在第二個參數大於
1
的時候是一個數組;當第二個參數不設或者傳值
1
的時候是一個下標。簡單的示例代碼如下:1、第二個參數不傳值的情況;$arr
=
Array('a',
'b');$rndKey
=
array_rand($arr);echo
$arr[$rndKey];//輸出
a
或者
b2、第二個參數傳值大於
1
的情況;$arr
=
Array('a',
'b',
'c',
'd');$rndKey
=
array_rand($arr,
2);print_r($rndKey]);//輸出一個隨機key的數組
㈨ php幾種排序演算法實例詳解
下面給你介紹四種排序方法:
1) 插入排序(Insertion Sort)的基本思想是:
每次將一個待排序的記錄,按其關鍵字大小插入到前面已經排好序的子文件中的適當位置,直到全部記錄插入完成為止。實現代碼如下:
㈩ 用「自然排序」演算法對數組進行不區分大小寫字母的排序
natcasesort
(PHP 4, PHP 5, PHP 7)
natcasesort — 用「自然排序」演算法對數組進行不區分大小寫字母的排序
說明
natcasesort ( array &$array ) : bool
natcasesort() 是 natsort() 函數的不區分大小寫字母的版本。
本函數實現了一個和人們通常對字母數字字元串進行排序的方法一樣的排序演算法並保持原有鍵/值的關聯,這被稱為「自然排序」。
注意:
如果兩個成員完全相同,那麼它們在排序數組中的相對順序是未定義的。
參數
array
輸入的數組。
返回值
成功時返回 true, 或者在失敗時返回 false。
範例
示例 #1 natcasesort() 例子
以上常式會輸出:
Standard sorting
Array
(
[0] => IMG0.png
[1] => IMG3.png
[2] => img1.png
[3] => img10.png
[4] => img12.png
[5] => img2.png
)
Natural order sorting (case-insensitive)
Array
(
[0] => IMG0.png
[4] => img1.png
[3] => img2.png
[5] => IMG3.png
[2] => img10.png
[1] => img12.png
)