Blogger Information
Blog 26
fans 0
comment 3
visits 17707
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
数组的排序
后网络时代
Original
866 people have browsed it

数组的排序, 数组的合并, 数组成员的统计, 数组的交差并补等,任意选一个专题,至少10个函数,写出演示案例并提交到博客中

  1. <?php
  2. // natsort ( array &$array ) : bool 成功时返回 true, 或者在失败时返回 false。
  3. //自然排序发
  4. $negative = array('-5','3','-2','0','-1000','9','1');
  5. natsort($negative);
  6. print_r($negative);
  7. echo "<br>";
  8. // asort — 对数组进行排序并保持索引关系
  9. // asort ( array &$array , int $sort_flags = SORT_REGULAR ) : bool
  10. // 本函数对数组进行排序,数组的索引保持和单元的关联。主要用于对那些单元顺序很重要的结合数组进行排序。
  11. echo "<hr>";
  12. // sort ( array &$array , int $sort_flags = SORT_REGULAR ) : bool
  13. // 本函数对数组进行排序。 当本函数结束时数组单元将被从最低到最高重新安排。
  14. // 如果两个成员完全相同,那么它们在排序数组中的相对顺序是未定义的。
  15. // SORT_REGULAR - 正常比较单元 详细描述参见 比较运算符 章节
  16. // SORT_NUMERIC - 单元被作为数字来比较
  17. // SORT_STRING - 单元被作为字符串来比较
  18. // SORT_LOCALE_STRING - 根据当前的区域(locale)设置来把单元当作字符串比较,可以用 setlocale() 来改变。
  19. // SORT_NATURAL - 和 natsort() 类似对每个单元以“自然的顺序”对字符串进行排序。
  20. // SORT_FLAG_CASE - 能够与 SORT_STRING 或 SORT_NATURAL 合并(OR 位运算),不区分大小写排序字符串。
  21. $arr2=['-56','3','-3','0','1000','99','1','a'];
  22. // SORT_REGULAR - 正常比较单元
  23. sort ($arr2);
  24. print_r($arr2);
  25. echo "<br>";
  26. // SORT_NUMERIC 注意字符转化成数字时候全变成0;
  27. $arr2=['-56','3','-3','0','1000','99','1','a'];
  28. sort ($arr2,SORT_NUMERIC);
  29. print_r($arr2);
  30. echo "<br>";
  31. $arr2=['-56','3','-8','0','-1000','9','11',];
  32. sort ($arr2,SORT_STRING);
  33. print_r($arr2);
  34. echo "<br>";
  35. $arr2=['-56','3','-8','0','-1000','9','1',];
  36. //会改变键的位置值
  37. sort ($arr2,SORT_NATURAL);
  38. print_r($arr2);
  39. echo "<br>";
  40. //SORT_FLAG_CASE区分大小写
  41. $arr = ['a', 'A','-500','-6000','3','11'];
  42. //SORT_FLAG_CASE | SORT_STRING 不区分大小写
  43. sort($arr, SORT_FLAG_CASE | SORT_STRING);
  44. print_r($arr);
  45. echo "<hr>";
  46. // array_multisort 对多个或对维数组进行排序
  47. // array_multisort ( array &$array1 , mixed $array1_sort_order = SORT_ASC , mixed $array1_sort_flags = SORT_REGULAR , mixed $... = ? ) : bool
  48. //... 可选的选项,可提供更多数组,跟随在 sort order 和 sort flag 之后。 提供的数组和之前的数组要有相同数量的元素。 换言之,排序是按字典顺序排列的。
  49. //多维数组排序数组的数量保持一致,在实际中用处不大,是根据一维数组的顺序进行排序的
  50. //建议:单独使用期进行排序,数组索引会改变
  51. $mutiarray=[16,-2,4,0,-1000];
  52. $mutiarray1=['key1'=>'abc','key2'=>'acd','1c','789','mbq'];
  53. print_r($mutiarray);
  54. print_r($mutiarray1);
  55. echo "<br>";
  56. array_multisort($mutiarray,SORT_ASC, SORT_STRING,$mutiarray1,SORT_NUMERIC, SORT_ASC);
  57. echo "<br>";
  58. echo print_r($mutiarray,true);
  59. echo "<br>";
  60. echo print_r($mutiarray1,true);
  61. echo "<br>";
  62. $mutiarray1=['key1'=>'abc','key2'=>'acd','1c','789','mbq'];
  63. array_multisort($mutiarray1,SORT_NUMERIC, SORT_ASC);
  64. echo print_r($mutiarray1,true);
  65. echo "<hr>";
  66. // natcasesort ( array &$array ) : bool
  67. // natcasesort() 是 natsort() 函数的不区分大小写字母的版本。 键值维持不变
  68. $text=['k'=>'abc.text','k1'=>'ABC.text','abc10.text','abc11.text','abc1.text'];
  69. natcasesort($text);
  70. print_r($text);
  71. echo "<hr>";
  72. // asort ( array &$array , int $sort_flags = SORT_REGULAR ) : bool
  73. //asort — 对数组进行排序并保持索引关系
  74. //sort_flags可以用可选的参数 sort_flags 改变排序的行为,详情见 sort()。
  75. $color=Array('red','blue','green','yellow','cyan','orange','lightblue','violet');
  76. asort($color);
  77. print_r($color);
  78. echo "<hr>";
  79. // ksort — 对数组按照键名排序
  80. // ksort ( array &$array , int $sort_flags = SORT_REGULAR ) : bool
  81. $ks=['a'=>'dir','b'=>'aside','c'=>'beside','d'=>'current','e'=>'form','f'=>'eat'];
  82. ksort($ks);
  83. foreach($ks as $k=>$v){
  84. echo "<pre></pre>";
  85. echo $k,'=>',$v;
  86. }
  87. echo "<hr>";
  88. // uksort : 使用用户自定义的比较函数对数组中的键名进行排序
  89. // uksort ( array &$array , callable $key_compare_func ) : bool
  90. //会改变数组的键值,排序完成后数组的键值变成了数字
  91. function comp($s1,$s2){
  92. $s1=preg_replace('#\d#','***',$s1);
  93. $s1=preg_replace('#\d#','***',$s1);
  94. return strcasecmp($s1,$s2);
  95. }
  96. $ks=['p'=>'dir','b'=>'aside','g'=>'beside','l'=>'current','a'=>'form','f'=>'eat'];
  97. uksort($ks,'comp');
  98. print_r($ks);
  99. echo "<hr>";
  100. //usort — 使用用户自定义的比较函数对数组中的值进行排序
  101. //usort ( array &$array , callable $value_compare_func ) : bool
  102. //本函数将用用户自定义的比较函数对一个数组中的值进行排序。 如果要排序的数组需要用一种不寻常的标准进行排序,那么应该使用此函数。
  103. $ks=['a'=>'dir','j'=>'aside','c'=>'beside','f'=>'current','e'=>'form','p'=>'eat'];
  104. usort($ks,'comp');
  105. print_r($ks);
  106. echo "<hr>";
  107. // uasort — 使用用户自定义的比较函数对数组中的值进行排序并保持索引关联
  108. // uasort ( array &$array , callable $value_compare_func ) : bool
  109. // 如果两个成员完全相同,那么它们在排序数组中的相对顺序是未定义的。
  110. $ks=['a'=>'dir','j'=>'aside','c'=>'beside','f'=>'current','e'=>'form','p'=>'eat'];
  111. uasort($ks,'comp');
  112. print_r($ks);
  113. echo "<hr>";
  114. // arsort — 对数组进行逆向排序并保持索引关系
  115. // arsort ( array &$array , int $sort_flags = SORT_REGULAR ) : bool
  116. // 本函数对数组进行排序,数组的索引保持和单元的关联。
  117. $arr2=['-56','3','-3','0','1000','99','1','a'];
  118. arsort ($arr2,SORT_NUMERIC);
  119. print_r($arr2);
  120. echo "<hr>";
  121. $fr= array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
  122. arsort($fr);
  123. echo print_r($fr,true);
  124. echo "<hr>";
  125. // krsort — 对数组按照键名逆向排序
  126. // krsort ( array &$array , int $sort_flags = SORT_REGULAR ) : bool
  127. // 对数组按照键名逆向排序,保留键名到数据的关联。主要用于结合数组。
  128. $fr= array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
  129. krsort($fr);
  130. echo print_r($fr,true);
  131. echo "<hr>";
  132. // array_reverse — 返回单元顺序相反的数组
  133. // array_reverse ( array $array , bool $preserve_keys = false ) : array
  134. // $preserve_key如果设置为 true 会保留数字的键。 非数字的键则不受这个设置的影响,总是会被保留。
  135. $inavlue=['id'=>'779','name'=>'zhanhsan','salary'=>9000,100,200];
  136. $a=array_reverse($inavlue,true);
  137. print_r($a);
  138. echo '<br>';
  139. foreach($a as $k=>$v){
  140. echo $k,'=>',$v;
  141. echo "<pre></pre>";
  142. }
  143. ?>

效果:

Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!