ホームページ >php教程 >php手册 >深入理解PHP多维数组排序原理

深入理解PHP多维数组排序原理

WBOY
WBOYオリジナル
2016-06-13 11:04:291043ブラウズ

随着时代的发展,喜欢用PHP语言的人越来越多,我们这里就回顾一下PHP多维数组排序的功能,希望大家能得到收获。如果成功则返回 TRUE,失败则返回 FALSE。array_multisort() 可以用来一次对多个数组进行排序,或者根据某一维或多维对PHP多维数组排序。

关联(string)键名保持不变,但数字键名会被重新索引。输入数组被当成一个表的列并以行来排序――这类似于 SQL 的 ORDER BY 子句的功能。第一个数组是要排序的主要数组。数组中的行(值)比较为相同的话就按照下一个输入数组中相应值的大小来排序,依此类推。本函数的参数结构有些不同寻常,但是非常灵活。第一个参数必须是一个数组。接下来的每个参数可以是数组或者是下面列出的排序标志。

排序顺序标志:
◆SORT_ASC - 按照上升顺序排序
◆SORT_DESC - 按照下降顺序排序

排序类型标志:
◆SORT_REGULAR - 将项目按照通常方法比较
◆SORT_NUMERIC - 将项目按照数值比较
◆SORT_STRING - 将项目按照字符串比较

每个数组之后不能指定两个同类的排序标志。每个数组后指定的排序标志仅对该数组有效 - 在此之前为默认值 SORT_ASC 和 SORT_REGULAR。

例子 1. 对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>$</span><span class="attribute"><font color="#ff0000">ar1</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">array</font></span><span>("10", 100, 100, "a");  </span>
</li>
<li class="alt">
<span>$</span><span class="attribute"><font color="#ff0000">ar2</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">array</font></span><span>(1, 3, "2", 1);  </span>
</li>
<li class=""><span>array_multisort($ar1, $ar2);  </span></li>
<li class="alt"><span> </span></li>
<li class=""><span>var_dump($ar1);  </span></li>
<li class="alt"><span>var_dump($ar2);  </span></li>
<li class="">
<span></span><span class="tag"><strong><font color="#006699">?></font></strong></span><span> </span>
</li>
</ol>

本例中经过排序后,第一个数组将包含 "10","a",100,100。第二个数组将包含 1,1,"2",3。第二个数组中的项目顺序完全和第一个数组中相应的项目(100 和 100)顺序一致。

<ol class="dp-xml">
<li class="alt"><span><span>array(4) {  </span></span></li>
<li class="">
<span>[0]=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> string(2) "10"  </span>
</li>
<li class="alt">
<span>[1]=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> string(1) "a"  </span>
</li>
<li class="">
<span>[2]=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> int(100)  </span>
</li>
<li class="alt">
<span>[3]=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> int(100)  </span>
</li>
<li class=""><span>}  </span></li>
<li class="alt"><span>array(4) {  </span></li>
<li class="">
<span>[0]=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> int(1)  </span>
</li>
<li class="alt">
<span>[1]=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> int(1)  </span>
</li>
<li class="">
<span>[2]=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> string(1) "2"  </span>
</li>
<li class="alt">
<span>[3]=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> int(3)  </span>
</li>
<li class=""><span>} </span></li>
</ol>



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。