php - 如何正确存储数组的重复键
问题描述
$statues
是来自 twitter api 响应的多个对象的数组。
$status->retweeted_status->user->screen_name
是 Twitter 帐户的用户名。
$status->retweeted_status->user->profile_image_url_https
是该用户的图像。
我想要的是:
- 店铺用户名
- 商店图片网址
- 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
);
}
}
没关系,但我想知道:
有没有更好的方法来存储用户名、图像以及计算该用户出现的次数(优化我的代码)?
如何订购数组以首先显示重复次数最多的用户,最后显示重复次数较少的用户(Descendent)?
谢谢!!
解决方案
要计算用户,我认为您要查找的内容在这里:Countoccurrence of duplicate items in array
基本上使用array_count_values
. 如果需要,还有其他内置数组函数可以为您订购数组。
推荐阅读
- python - 没有这样的表:main.auth_user__old (OperationalError)
- python - How apply this counter treatment for each key in a dict dataframe ? Python Pandas
- blazor - 在 Blazor 中使用富文本显示文本
- r - dplyr `rowwise()` 是否以与 `group_by()` 组相同的方式分组?
- css - 使一个文本框比其他文本框大
- python - 在python中查找并输出重复文件,行以逗号分隔
- here-api - 批量地理编码器“维护中”
- networking - ESXI 6.5 配置具有不同网关的第二个网络
- javascript - 动态查询从用户获取输入并从数据库 node.js 进行过滤
- python - 在二维数组中使用 for 循环赋值(python 中的矩阵)