㈠ 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
)