如何正确存储数组的重复键
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
是该用户的图像。
我要的是:
- 商店用户名
- 商店图片URL
- 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
);
}
}
结果如下:
没关系,但我想知道:
有没有更好的方法来存储用户名,图像,并统计该用户出现了多少次(优化我的代码)?
我如何排列数组以首先显示重复次数最多的用户,最后显示重复次数较少的用户(后代)?
谢谢!!
要统计用户我想你要找的是这里:Count occurrence of duplicate items in array
基本使用array_count_values
。如果需要,还有其他内置数组函数可以为您排序数组。
$statues
是来自 Twitter api 响应的多个对象的数组。
$status->retweeted_status->user->screen_name
是 Twitter 帐户的用户名。
$status->retweeted_status->user->profile_image_url_https
是该用户的图像。
我要的是:
- 商店用户名
- 商店图片URL
- 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
);
}
}
结果如下:
没关系,但我想知道:
有没有更好的方法来存储用户名,图像,并统计该用户出现了多少次(优化我的代码)?
我如何排列数组以首先显示重复次数最多的用户,最后显示重复次数较少的用户(后代)?
谢谢!!
要统计用户我想你要找的是这里:Count occurrence of duplicate items in array
基本使用array_count_values
。如果需要,还有其他内置数组函数可以为您排序数组。