Heim > Backend-Entwicklung > PHP-Tutorial > PHP如何把计算好的count总数排列最前面?

PHP如何把计算好的count总数排列最前面?

WBOY
Freigeben: 2016-06-06 20:33:32
Original
1075 Leute haben es durchsucht

<code>$arr = Array(
   Array
        (
            'department' => '雅典娜',
             'sign' => 0,
            'time' => '2015年06月01日',
            'surname' => '星史'
        )
,
     Array
        (
            'department' => '雅典娜',
            'sign' => 0,
            'time' => '2015年06月02日',
            'surname' =>  '星史'
        )
,
     Array
        (
            'department' => '雅典娜',
            'sign' => 0,
            'time' => '2015年06月03日',
            'surname' => '瞬'
        ),

     Array
        (
            'department' => '雅典娜',
            'sign' => 0,
            'time' => '2015年06月03日',
            'surname' => '紫龙'
        )
);
$array=array();
foreach($arr as $v){
    if(!isset($array[$v['surname']])){
              $array[$v['surname']]['count']=1;
              $array[$v['surname']]['time']=$v['time'];
    }else{
         $array[$v['surname']]['count']+=1;
         $array[$v['surname']]['time'].=','.$v['time'];
    }
}
print_r($array);
````

输出结果是

</code>
Nach dem Login kopieren
Nach dem Login kopieren

'surname' = '星史',
'count'=2

其它
'surname' => '瞬' ,
'count'=1都是1

但是这个输出默认不排序的

```

如何把'count'总数最大排列前面呢?

回复内容:

<code>$arr = Array(
   Array
        (
            'department' => '雅典娜',
             'sign' => 0,
            'time' => '2015年06月01日',
            'surname' => '星史'
        )
,
     Array
        (
            'department' => '雅典娜',
            'sign' => 0,
            'time' => '2015年06月02日',
            'surname' =>  '星史'
        )
,
     Array
        (
            'department' => '雅典娜',
            'sign' => 0,
            'time' => '2015年06月03日',
            'surname' => '瞬'
        ),

     Array
        (
            'department' => '雅典娜',
            'sign' => 0,
            'time' => '2015年06月03日',
            'surname' => '紫龙'
        )
);
$array=array();
foreach($arr as $v){
    if(!isset($array[$v['surname']])){
              $array[$v['surname']]['count']=1;
              $array[$v['surname']]['time']=$v['time'];
    }else{
         $array[$v['surname']]['count']+=1;
         $array[$v['surname']]['time'].=','.$v['time'];
    }
}
print_r($array);
````

输出结果是

</code>
Nach dem Login kopieren
Nach dem Login kopieren

'surname' = '星史',
'count'=2

其它
'surname' => '瞬' ,
'count'=1都是1

但是这个输出默认不排序的

```

如何把'count'总数最大排列前面呢?

使用PHP的usort函数进行自定义排序

<code><?php function my_sort($a, $b){
        return $a['count'] == $b['count'] ? 0 : ($a['count'] > $b['count'] ? -1 : 1);
    }
    $array = array(...); //array为您的数据数组
    usort($array, 'my_sort');
    print_r($array);
</code>
Nach dem Login kopieren

可以写下自定义的排序

<code>php</code><code>function my_sort($a, $b)
  {
    return -($a['count'] - $b['count']);//降序
  }

 uasort($array, "my_sort");
print_r($array);
</code>
Nach dem Login kopieren

两个人答案不错,可惜不能点两个采纳了~~~

Verwandte Etiketten:
php
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