批改状态:合格
老师批语:
<?php// natsort ( array &$array ) : bool 成功时返回 true, 或者在失败时返回 false。//自然排序发$negative = array('-5','3','-2','0','-1000','9','1');natsort($negative);print_r($negative);echo "<br>";// asort — 对数组进行排序并保持索引关系// asort ( array &$array , int $sort_flags = SORT_REGULAR ) : bool// 本函数对数组进行排序,数组的索引保持和单元的关联。主要用于对那些单元顺序很重要的结合数组进行排序。echo "<hr>";// sort ( array &$array , int $sort_flags = SORT_REGULAR ) : bool// 本函数对数组进行排序。 当本函数结束时数组单元将被从最低到最高重新安排。// 如果两个成员完全相同,那么它们在排序数组中的相对顺序是未定义的。// SORT_REGULAR - 正常比较单元 详细描述参见 比较运算符 章节// SORT_NUMERIC - 单元被作为数字来比较// SORT_STRING - 单元被作为字符串来比较// SORT_LOCALE_STRING - 根据当前的区域(locale)设置来把单元当作字符串比较,可以用 setlocale() 来改变。// SORT_NATURAL - 和 natsort() 类似对每个单元以“自然的顺序”对字符串进行排序。// SORT_FLAG_CASE - 能够与 SORT_STRING 或 SORT_NATURAL 合并(OR 位运算),不区分大小写排序字符串。$arr2=['-56','3','-3','0','1000','99','1','a'];// SORT_REGULAR - 正常比较单元sort ($arr2);print_r($arr2);echo "<br>";// SORT_NUMERIC 注意字符转化成数字时候全变成0;$arr2=['-56','3','-3','0','1000','99','1','a'];sort ($arr2,SORT_NUMERIC);print_r($arr2);echo "<br>";$arr2=['-56','3','-8','0','-1000','9','11',];sort ($arr2,SORT_STRING);print_r($arr2);echo "<br>";$arr2=['-56','3','-8','0','-1000','9','1',];//会改变键的位置值sort ($arr2,SORT_NATURAL);print_r($arr2);echo "<br>";//SORT_FLAG_CASE区分大小写$arr = ['a', 'A','-500','-6000','3','11'];//SORT_FLAG_CASE | SORT_STRING 不区分大小写sort($arr, SORT_FLAG_CASE | SORT_STRING);print_r($arr);echo "<hr>";// array_multisort 对多个或对维数组进行排序// array_multisort ( array &$array1 , mixed $array1_sort_order = SORT_ASC , mixed $array1_sort_flags = SORT_REGULAR , mixed $... = ? ) : bool//... 可选的选项,可提供更多数组,跟随在 sort order 和 sort flag 之后。 提供的数组和之前的数组要有相同数量的元素。 换言之,排序是按字典顺序排列的。//多维数组排序数组的数量保持一致,在实际中用处不大,是根据一维数组的顺序进行排序的//建议:单独使用期进行排序,数组索引会改变$mutiarray=[16,-2,4,0,-1000];$mutiarray1=['key1'=>'abc','key2'=>'acd','1c','789','mbq'];print_r($mutiarray);print_r($mutiarray1);echo "<br>";array_multisort($mutiarray,SORT_ASC, SORT_STRING,$mutiarray1,SORT_NUMERIC, SORT_ASC);echo "<br>";echo print_r($mutiarray,true);echo "<br>";echo print_r($mutiarray1,true);echo "<br>";$mutiarray1=['key1'=>'abc','key2'=>'acd','1c','789','mbq'];array_multisort($mutiarray1,SORT_NUMERIC, SORT_ASC);echo print_r($mutiarray1,true);echo "<hr>";// natcasesort ( array &$array ) : bool// natcasesort() 是 natsort() 函数的不区分大小写字母的版本。 键值维持不变$text=['k'=>'abc.text','k1'=>'ABC.text','abc10.text','abc11.text','abc1.text'];natcasesort($text);print_r($text);echo "<hr>";// asort ( array &$array , int $sort_flags = SORT_REGULAR ) : bool//asort — 对数组进行排序并保持索引关系//sort_flags可以用可选的参数 sort_flags 改变排序的行为,详情见 sort()。$color=Array('red','blue','green','yellow','cyan','orange','lightblue','violet');asort($color);print_r($color);echo "<hr>";// ksort — 对数组按照键名排序// ksort ( array &$array , int $sort_flags = SORT_REGULAR ) : bool$ks=['a'=>'dir','b'=>'aside','c'=>'beside','d'=>'current','e'=>'form','f'=>'eat'];ksort($ks);foreach($ks as $k=>$v){echo "<pre></pre>";echo $k,'=>',$v;}echo "<hr>";// uksort : 使用用户自定义的比较函数对数组中的键名进行排序// uksort ( array &$array , callable $key_compare_func ) : bool//会改变数组的键值,排序完成后数组的键值变成了数字function comp($s1,$s2){$s1=preg_replace('#\d#','***',$s1);$s1=preg_replace('#\d#','***',$s1);return strcasecmp($s1,$s2);}$ks=['p'=>'dir','b'=>'aside','g'=>'beside','l'=>'current','a'=>'form','f'=>'eat'];uksort($ks,'comp');print_r($ks);echo "<hr>";//usort — 使用用户自定义的比较函数对数组中的值进行排序//usort ( array &$array , callable $value_compare_func ) : bool//本函数将用用户自定义的比较函数对一个数组中的值进行排序。 如果要排序的数组需要用一种不寻常的标准进行排序,那么应该使用此函数。$ks=['a'=>'dir','j'=>'aside','c'=>'beside','f'=>'current','e'=>'form','p'=>'eat'];usort($ks,'comp');print_r($ks);echo "<hr>";// uasort — 使用用户自定义的比较函数对数组中的值进行排序并保持索引关联// uasort ( array &$array , callable $value_compare_func ) : bool// 如果两个成员完全相同,那么它们在排序数组中的相对顺序是未定义的。$ks=['a'=>'dir','j'=>'aside','c'=>'beside','f'=>'current','e'=>'form','p'=>'eat'];uasort($ks,'comp');print_r($ks);echo "<hr>";// arsort — 对数组进行逆向排序并保持索引关系// arsort ( array &$array , int $sort_flags = SORT_REGULAR ) : bool// 本函数对数组进行排序,数组的索引保持和单元的关联。$arr2=['-56','3','-3','0','1000','99','1','a'];arsort ($arr2,SORT_NUMERIC);print_r($arr2);echo "<hr>";$fr= array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");arsort($fr);echo print_r($fr,true);echo "<hr>";// krsort — 对数组按照键名逆向排序// krsort ( array &$array , int $sort_flags = SORT_REGULAR ) : bool// 对数组按照键名逆向排序,保留键名到数据的关联。主要用于结合数组。$fr= array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");krsort($fr);echo print_r($fr,true);echo "<hr>";// array_reverse — 返回单元顺序相反的数组// array_reverse ( array $array , bool $preserve_keys = false ) : array// $preserve_key如果设置为 true 会保留数字的键。 非数字的键则不受这个设置的影响,总是会被保留。$inavlue=['id'=>'779','name'=>'zhanhsan','salary'=>9000,100,200];$a=array_reverse($inavlue,true);print_r($a);echo '<br>';foreach($a as $k=>$v){echo $k,'=>',$v;echo "<pre></pre>";}?>
效果:
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号