代码;
$all_tags = array();
while ($row = mysql_fetch_assoc($result)) {
$all_tags = array_merge($all_tags, explode(' ', $row['title']));
}
$all_tags = array_count_values($all_tags);
echo "<pre>";
arsort($all_tags);
foreach ($all_tags as $key => $val) {
echo "$key = $val\n";
}
输出;
fuups! = 7
401 = 5
Authorization = 5
Required = 5
, = 3
izle = 3
Error = 2
Server = 2
Internal = 2
500 = 2
Full = 1
MegaSinema.net = 1
Sinema = 1
Bad = 1
Request = 1
Film = 1
400 = 1
我想做的就是将'keys'与相同的整数'value'合并。例子;
401 = 5
Authorization = 5
Required = 5
到
401 Authorization Required = 5
我不知道我怎么能这样做。我尝试了很多方法,但我从来没有让它工作。谢谢。
答案 0 :(得分:1)
$out = array();
foreach($array as $key=>$value)
if(array_key_exists($value, $out))
$out[$value][] = $key;
else
$out[$value] = array($key);
// Then you could do
echo implode(" ", $out[5]); // Should output "401 Authorization Required"
的工作示例
另一个选择是直接追加并修剪&#34;额外&#34;最后的空间。
$out = array();
foreach($array as $key=>$value)
if(array_key_exists($value, $out))
$out[$value] .= $key . ' ';
else
$out[$value] = $key . ' ';
// Then you could do
echo trim($out[5]); // Should output "401 Authorization Required"
答案 1 :(得分:1)
试试这个
<?php
$data = array('fuups!' => '7','401' => '5','Authorization' => '5','Required' => '5',',' => '3','izle' => '3','Error' => '2','Server' => '2','Internal' => '2','500' => '2','Full' => '1','MegaSinema.net' => '1','Sinema' => '1','Bad' => '1','Request' => '1','Film' => '1','400' => '1');
$rows = array();
$values = array_values($data);
asort($values);
$highestVal = $values[0];
for ($i = 0; $i <= $highestVal; $i++) {
foreach ($data as $key => $value) {
if ($i == $value) {
$rows[$i] = $rows[$i] . " {$key}";
}
}
}
?>
工作示例XD http://codepad.org/x9uHs1sp
EDIT ----
要echo
所有密钥,只需将var_dump($rows)
替换为:
foreach ($rows as $key) {
echo "{$key}<br />";
}
答案 2 :(得分:0)
我不熟悉PHP,但我认为你可以尝试创建一个哈希表来处理这个问题。
例如,如果您将3个项目插入哈希表并使用“5”作为键,则可以正确插入第一个项目,其他两个项目应该抛出异常。您可以捕获异常,因为它已被排除,并将值附加到第一个项的值。所以哈希表中的项应该是:
键:5 值:401需要授权
但是你应该确定价值中的订单。
我的2美分,祝你好运!
更新: 如果抛出异常是不可接受的,您可以先在哈希表中查找一个键,如果该键不存在,则插入键和值,如果它已经存在,则将该值附加到现有项值。