Maison > php教程 > php手册 > 高手详谈PHP二维数组

高手详谈PHP二维数组

WBOY
Libérer: 2016-06-13 11:04:31
original
1124 Les gens l'ont consulté

PHP经过长时间的发展,很多用户都很了解它了,上网收集了一些关于PHP二维数组的相关知识,这里和大家一起分享一下,PHP本身是有一个多维数组排序的函数的。

<ol class="dp-xml"><li class="alt"><span><span>boolarray_multisort(array$ar1[,mixed$arg[,mixed$...[,array$...]]]) </span></span></li></ol>
Copier après la connexion

下面是手册当中对于array_multisort函数的描述:

array_multisort()可以用来一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序。关联(string)键名保持不变,但数字键名会被重新索引。输入数组被当成一个表的列并以行来排序――这类似于SQL的ORDERBY子句的功能。第一个数组是要排序的主要数组。数组中的行(值)比较为相同的话就按照下一个输入数组中相应值的大小来排序,依此类推。从手册中看到,PHP本身的多维排序,是按照第一个数组进行排序,并且调整后面的顺序。像这样的数组:
<ol class="dp-xml">
<li class="alt"><span><span>array('id'=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>array(1,3,2),  </span></span></li>
<li class="">
<span>'data'=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>array('a','c','b')) </span>
</li>
</ol>
Copier après la connexion

只要按照id进行多维排序,就可以了。但是很多时候,我们构造出的PHP二维数组是这样的:

<ol class="dp-xml">
<li class="alt"><span><span>array(  </span></span></li>
<li class="">
<span>array('id'=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>1,'data'=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>'a'),  </span>
</li>
<li class="alt">
<span>array('id'=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>3,'data'=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>'c'),  </span>
</li>
<li class="">
<span>array('id'=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>2,'data'=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>'b')  </span>
</li>
<li class="alt"><span>); </span></li>
</ol>
Copier après la connexion

数组的元素是按行排列的,需要按其中的一列进行排序。PHP好像也没提供类似矩阵转置的函数,所以不能直接使用array_multisort进行多维排序。不过只需要先把排序的列抽取出来,作为第一个参数传给array_multisort即可。

<ol class="dp-xml">
<li class="alt"><span><span>functionmulti_array_sort($multi_array,$sort_key,$</span><span class="attribute"><font color="#ff0000">sort</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">SORT_ASC</font></span><span>){  </span></span></li>
<li class=""><span>if(is_array($multi_array)){  </span></li>
<li class="alt"><span>foreach($multi_arrayas$row_array){  </span></li>
<li class=""><span>if(is_array($row_array)){  </span></li>
<li class="alt"><span>$key_array[]=$row_array[$sort_key];  </span></li>
<li class=""><span>}else{  </span></li>
<li class="alt"><span>return-1;  </span></li>
<li class=""><span>}  </span></li>
<li class="alt"><span>}  </span></li>
<li class=""><span>}else{  </span></li>
<li class="alt"><span>return-1;  </span></li>
<li class=""><span>}  </span></li>
<li class="alt"><span>array_multisort($key_array,$sort,$multi_array);  </span></li>
<li class=""><span>return$multi_array;  </span></li>
<li class="alt"><span>}  </span></li>
</ol>
Copier après la connexion

以上就是简单的PHP二维数组的介绍,希望对大家有帮助。


Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Recommandations populaires
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal