如何正确存储数组的重复键

How to PROPERLY store duplicate keys of array

$statues 是来自 Twitter api 响应的多个对象的数组。

$status->retweeted_status->user->screen_name 是 Twitter 帐户的用户名。

$status->retweeted_status->user->profile_image_url_https 是该用户的图像。

我要的是:

  1. 商店用户名
  2. 商店图片URL
  3. COUNT 此用户重复了多少次

据我所知,不可能将重复的键放入关联数组中,所以我写下了这段代码:

$vector = [];

foreach($statuses as $status ){
      
        if(array_key_exists ( $status->retweeted_status->user->screen_name ,$vector)){
            $vector[$status->retweeted_status->user->screen_name]['cont'] = $vector[$status->retweeted_status->user->screen_name]['cont'] + 1;
        
        } else{
            $vector[$status->retweeted_status->user->screen_name] = array(
                'img' => str_replace('_normal','_400x400',$status->retweeted_status->user->profile_image_url_https),
                'cont' => 1
            );
        }
      


    }

结果如下:

没关系,但我想知道:

  1. 有没有更好的方法来存储用户名,图像,并统计该用户出现了多少次(优化我的代码)?

  2. 我如何排列数组以首先显示重复次数最多的用户,最后显示重复次数较少的用户(后代)?

谢谢!!

要统计用户我想你要找的是这里:Count occurrence of duplicate items in array

基本使用array_count_values。如果需要,还有其他内置数组函数可以为您排序数组。