Heim > Backend-Entwicklung > PHP-Tutorial > 多维数组排序有关问题

多维数组排序有关问题

WBOY
Freigeben: 2016-06-13 10:16:31
Original
789 Leute haben es durchsucht

多维数组排序问题
有一数组:

PHP code
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--><?php $arr = array(array(1,0),array(2,0),array(3,0),array(4,0),array(5,1),array(6,1),array(7,5),array(8,2)); ?>
Nach dem Login kopieren


想要排序的结果为:
PHP code
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--><?php $arr = array(array(1,0),array(5,1),array(7,5),array(6,1),array(2,0),array(8,2),array(3,0),array(4,0)); ?>
Nach dem Login kopieren


即:$arr[$i][0] == $arr[$j][1] 那么$arr[$j]放在$arr[$i]后面

其实就是一个无限分类的一个排序,我试过多个循环来处理,不过有点麻烦,想用递归来实现,只实现了$arr[$i][0]=1的情况,请大家帮忙
分类比较少,就这么多了

------解决方案--------------------
这样写
PHP code
$arr = array(array(1,0),array(2,0),array(3,0),array(4,0),array(5,1),array(6,1),array(7,5),array(8,2));print_r(foo($arr));function foo($ar, $p=0) {  $r = array();  foreach($ar as $v) {    if($v[1] == $p) {      $r[] = $v;      $r = array_merge($r, foo($ar, $v[0]));    }  }  return $r;}<div class="clear">
                 
              
              
        
            </div>
Nach dem Login kopieren
Verwandte Etiketten:
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 Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage