Heim > php教程 > php手册 > 使用内置函数解决PHP多维数组排序问题

使用内置函数解决PHP多维数组排序问题

WBOY
Freigeben: 2016-06-13 11:04:28
Original
935 Leute haben es durchsucht

学习PHP时,你可能会遇到PHP多维数组排序问题,这里将介绍PHP多维数组排序问题的解决方法,在这里拿出来和大家分享一下,希望对大家有帮助。

根据数组的键进行比较大小,排序,就不用说了,php有很多,很方便的内置函数,krsort(),ksort()等如果是根据数组的值进行比较大小就麻烦一些。如果值没有重复的情况,可以先用array_flip()交换键、值;然后krsort(),然后在array_flip()交换回来,就可以比较大小。有值重复的情况,就要用到一些排序算法了,不过php有很方便的回调函数uasort()会保持原来的索引、usort()会重建索引。PHP多维数组排序代码:
<ol class="dp-xml">
<li class="alt"><span><span class="tag"></span><span class="tag-name">php</span><span> </span></span></li>
<li class=""><span>functioncmp($a,$b){  </span></li>
<li class="alt"><span>if($a[”nums”]==$b[”nums”]){  </span></li>
<li class=""><span>return0;  </span></li>
<li class="alt"><span>}  </span></li>
<li class="">
<span>return($a[”nums”]</span><span class="tag"><span>$b[”nums”])?-1:1;  </span></span>
</li>
<li class="alt"><span>}  </span></li>
<li class="">
<span>$</span><span class="attribute">arr</span><span>=</span><span class="attribute-value">Array</span><span>(  </span>
</li>
<li class="alt">
<span></span><span class="attribute">0</span><span>=</span><span class="tag">></span><span>Array(  </span>
</li>
<li class="">
<span>“username”=</span><span class="tag">></span><span>owen,  </span>
</li>
<li class="alt">
<span>“nums”=</span><span class="tag">></span><span>2,  </span>
</li>
<li class=""><span>),  </span></li>
<li class="alt">
<span></span><span class="attribute">1</span><span>=</span><span class="tag">></span><span>Array(  </span>
</li>
<li class="">
<span>“username”=</span><span class="tag">></span><span>d5s,  </span>
</li>
<li class="alt">
<span>“nums”=</span><span class="tag">></span><span>5,  </span>
</li>
<li class=""><span>),  </span></li>
<li class="alt">
<span></span><span class="attribute">2</span><span>=</span><span class="tag">></span><span>Array(  </span>
</li>
<li class="">
<span>“username”=</span><span class="tag">></span><span>pt,  </span>
</li>
<li class="alt">
<span>“nums”=</span><span class="tag">></span><span>3,  </span>
</li>
<li class=""><span>),  </span></li>
<li class="alt"><span>);  </span></li>
<li class=""><span>uasort($arr,“cmp”);  </span></li>
<li class="alt">
<span>echo‘</span><span class="tag"><span class="attribute">prestyle</span><span class="tag-name">prestyle</span><span>=”text-align:left”</span><span class="tag">></span><span>’;  </span></span>
</li>
<li class=""><span>print_r($arr);  </span></li>
<li class="alt">
<span>echo‘</span><span class="tag"><span class="tag-name">pre</span><span class="tag">></span><span>’;  </span></span>
</li>
<li class="">
<span></span><span class="tag">?></span><span> </span>
</li>
<li class="alt"><span> </span></li>
<li class=""><span>Array  </span></li>
<li class="alt"><span>(  </span></li>
<li class="">
<span>[0]=</span><span class="tag">></span><span>Array  </span>
</li>
<li class="alt"><span>(  </span></li>
<li class="">
<span>[username]=</span><span class="tag">></span><span>owen  </span>
</li>
<li class="alt">
<span>[nums]=</span><span class="tag">></span><span>2  </span>
</li>
<li class=""><span>)  </span></li>
<li class="alt"><span> </span></li>
<li class="">
<span>[2]=</span><span class="tag">></span><span>Array  </span>
</li>
<li class="alt"><span>(  </span></li>
<li class="">
<span>[username]=</span><span class="tag">></span><span>pt  </span>
</li>
<li class="alt">
<span>[nums]=</span><span class="tag">></span><span>3  </span>
</li>
<li class=""><span>)  </span></li>
<li class="alt"><span> </span></li>
<li class="">
<span>[1]=</span><span class="tag">></span><span>Array  </span>
</li>
<li class="alt"><span>(  </span></li>
<li class="">
<span>[username]=</span><span class="tag">></span><span>d5s  </span>
</li>
<li class="alt">
<span>[nums]=</span><span class="tag">></span><span>5  </span>
</li>
<li class=""><span>)  </span></li>
<li class="alt"><span> </span></li>
<li class=""><span>) </span></li>
</ol>
Nach dem Login kopieren

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage