PHP数组关键字计数
我有一个数组:PHP数组关键字计数,php,arrays,Php,Arrays,我有一个数组: [873] => Array ( [id] => 873 [email] => [data] => Array ( [#1] => Dmitri Vegas & Like Mike [#2] => Hardwell [#3] => w&w
[873] => Array
(
[id] => 873
[email] =>
[data] => Array
(
[#1] => Dmitri Vegas & Like Mike
[#2] => Hardwell
[#3] => w&w
[#4] => alesso
[#5] => tiesto
[#6] => nicky romero
[#7] => dannic
[#8] => dj alvaro
[#9] => dvbbs
[#10] => sandro silva
)
)
[872] => Array
(
[id] => 872
[email] =>
[data] => Array
(
[#1] => nervo
[#2] => axwell
[#3] => armin van buuren
[#4] => tjr
[#5] => w&w
[#6] => deadmau5
[#7] => markus shulz
[#8] => chuckie
[#9] => alesso
[#10] => dada life
)
)
[871] => Array
(
[id] => 871
[email] =>
[data] => Array
(
[#1] => Noise controllers
[#2] => Noise controllers
[#3] => Noise crontrollers
[#4] => Zatox
[#5] => Zatox
[#6] => Zatox
[#7] => Zatox
[#8] => Hardwell
[#9] => Noisia
[#10] => Noisia
)
)
基本上,我想做的是以一种计数类型的格式跟踪关键字,有点像这样
Hardwell -> 2
w&w -> 2
tjr -> 1
etc etc
我知道我必须用在_array()
中搜索数组,以查看关键字出现了多少次,但我不知道从哪里开始
我很想将它们输出到一个列表中,根据哪个值有最高的数字,我有点不知所措。有人能告诉我该怎么做吗?这可以通过以下方式实现:
$result
将是一个包含所有值和出现次数的数组。如果您还想显示发生次数,只需在$result
数组中循环:
foreach ($result as $value => $number) {
echo "$value was found $number times".PHP_EOL;
}
这可以通过以下方式实现:
$result
将是一个包含所有值和出现次数的数组。如果您还想显示发生次数,只需在$result
数组中循环:
foreach ($result as $value => $number) {
echo "$value was found $number times".PHP_EOL;
}
这可能会让你开始:我很难理解如何使用这个函数,有人能给我举个小例子吗?你的论点不应该是
$data
,而应该是foreach
中的$array
,我发誓最后一个问题!我有很多结果,比如Dash Berlin被发现了17次,Dash Berlin被发现了2次,Dash Berlin被发现了14次,它们都是相同的结果,但我猜这个字母盒已经被扔掉了,有可能把它变成一个吗?这可能会让你开始:我很难理解如何使用这个函数,有人能给我举个小例子吗?你的论点不应该是$data
,而应该是foreach
中的$array
,这样它才能工作。最后一个问题我发誓!我有一系列的结果,比如Dash Berlin被发现了17次,Dash Berlin被发现了2次,Dash Berlin被发现了14次,它们都是相同的结果,但我猜书信盒要扔掉了,有可能把它变成一个吗?你的阵列看起来和我的不同,默认情况下,如何将数组更改为那样?从何处获取数组?如何生成它?你能打印它吗?@user2820604:它是同一个数组。请参阅my array的print\u r()
输出:@user2820604:这就是您的代码的外观:完美!它的工作,我可以命令结果去哪一个值被提及最多?例如,哈德威尔被提到1000次Deadmaus被提到999次Dj Dude被提到995次等等?你的阵列看起来和我的不同,我如何将我的阵列默认更改为那样?你从哪里获得阵列?如何生成它?你能打印它吗?@user2820604:它是同一个数组。请参阅my array的print\u r()
输出:@user2820604:这就是您的代码的外观:完美!它的工作,我可以命令结果去哪一个值被提及最多?比如,哈德威尔被提到1000次,戴德茅斯被提到999次,Dj杜德被提到995次,等等?
$array = array(
array('data' => array('asd','abc')),
array('data' => array('abc','cde')),
array('data' => array('cde','dfe'))
);
$data_array = array();
foreach ($array as $arr) {
if (is_array($arr['data']))
$data_array = array_merge($data_array, $arr['data']);
else
array_push($data_array, $arr['data']);
}
$new_arr = array_count_values($data_array);
arsort($new_arr);
print_r($new_arr);