Home >php教程 >php手册 >关于PHP二维数组排序使用key实现

关于PHP二维数组排序使用key实现

WBOY
WBOYOriginal
2016-06-13 11:04:431222browse

PHP数组有一维数组和而未数组,我们这里分析一下PHP二维数组排序的技巧。PHP,一个嵌套的缩写名称,是英文超级文本预处理语言(PHP:Hypertext Preprocessor)的缩写。PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,现在被很多的网站编程人员广泛的运用。PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。

它可以比 CGI 或者 Perl 更快速的执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的 CGI要高许多;与同样是嵌入HTML文档的脚本语言JavaScript相比,PHP在服务器端执行,充分利用了服务器的性能;PHP执行引擎还会将用 户经常访问的PHP程序驻留在内存中,其他用户再一次访问这个程序时就不需要重新编译程序了,只要直接执行内存中的代码就可以了,这也是PHP高效率的体 现之一。PHP具有非常强大的功能,所有的CGI或者JavaScript的功能PHP都能实现,而且支持几乎所有流行的数据库以及操作系统。

PHP二维数组排序使用asort函数,但如果是多维数组按照其中某索引值进行排序。一般来说这类排序会引入临时数组来存储中间变量比如key值通过对key的排序实现多维数组的一个排序。以下是我写的一段按照二维数组中的时间值进行排序:

PHP二维数组排序代码:

<ol class="dp-xml">
<li class="alt"><span><strong><font color="#006699"><span class="tag"></span><span class="tag-name">php</span></font></strong><span> </span></span></li>
<li class=""><span>//以时间InputDate为key值进行二维数组降序排列  </span></li>
<li class="alt"><span> function array_sort($arr,$keys,$type){   </span></li>
<li class="">
<span>$</span><span class="attribute"><font color="#ff0000">keysvalue</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">array</font></span><span>();  </span>
</li>
<li class="alt">
<span>$</span><span class="attribute"><font color="#ff0000">i</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">0</font></span><span>;  </span>
</li>
<li class="">
<span>foreach($arr as $</span><span class="attribute"><font color="#ff0000">key</font></span><span>=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>$val) {  </span>
</li>
<li class="alt"><span>$val[$keys] = str_replace("-","",$val[$keys]);  </span></li>
<li class=""><span>$val[$keys] = str_replace(" ","",$val[$keys]);  </span></li>
<li class="alt"><span>$val[$keys] = str_replace(":","",$val[$keys]);  </span></li>
<li class=""><span>$keysvalue[] =$val[$keys];  </span></li>
<li class="alt"><span>   </span></li>
<li class=""><span>}   </span></li>
<li class="alt"><span>asort($keysvalue); //key值排序  </span></li>
<li class=""><span>reset($keysvalue); //指针重新指向数组第一个  </span></li>
<li class="alt">
<span>foreach($keysvalue as $</span><span class="attribute"><font color="#ff0000">key</font></span><span>=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>$vals) {   </span>
</li>
<li class=""><span>$keysort[] = $key;   </span></li>
<li class="alt"><span>}   </span></li>
<li class="">
<span>$</span><span class="attribute"><font color="#ff0000">new_array</font></span><span> = array();  </span>
</li>
<li class="alt"><span>if($type != "asc"){  </span></li>
<li class="">
<span>for($</span><span class="attribute"><font color="#ff0000">ii</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">count</font></span><span>($keysort)-1; $ii</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>=0; $ii--) {   </span>
</li>
<li class="alt"><span>$new_array[] = $arr[$keysort[$ii]];   </span></li>
<li class=""><span>}   </span></li>
<li class="alt"><span>}else{  </span></li>
<li class="">
<span>for($</span><span class="attribute"><font color="#ff0000">ii</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">0</font></span><span>; $ii</span><strong><font color="#006699"><span class="tag"><span class="tag-name">count</span></span></font></strong><span>($keysort); $ii++){  </span>
</li>
<li class="alt"><span>$new_array[] = $arr[$keysort[$ii]];  </span></li>
<li class=""><span>}  </span></li>
<li class="alt"><span>}  </span></li>
<li class=""><span>return $new_array;   </span></li>
<li class="alt"><span>}   </span></li>
<li class="">
<span></span><span class="tag"><strong><font color="#006699">?></font></strong></span><span> </span>
</li>
</ol>

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn