Maison > Article > développement back-end > 高手详谈PHP二维数组_PHP教程
PHP经过长时间的发展,很多用户都很了解它了,上网收集了一些关于PHP二维数组的相关知识,这里和大家一起分享一下,PHP本身是有一个多维数组排序的函数的。
<ol class="dp-xml"><li class="alt"><span><span>boolarray_multisort(array$ar1[,mixed$arg[,mixed$...[,array$...]]]) </span></span></li></ol>
下面是手册当中对于array_multisort函数的描述:
<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>
只要按照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>
数组的元素是按行排列的,需要按其中的一列进行排序。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>
以上就是简单的PHP二维数组的介绍,希望对大家有帮助。