有这样一个二维数组,我想把重复的值去掉,并且还要得到重复值的个数越多,数组的的排序越靠前
Array
(
[0] => Array
(
[0] => 婚姻是爱情的坟墓吗?
) [1] => Array
(
[0] => 该不该发起战争
) [2] => Array
(
[0] => 该不该发起战争
) [3] => Array
(
[0] => 输入话题标题
) [4] => Array
(
[0] => 输入话题标题
) [5] => Array
(
[0] => 输入话题标题
))
想要的结果是:
Array
(
[0] => Array
(
[0] => 输入话题标题
) [1] => Array
(
[0] => 该不该发起战争
) [2] => Array
(
[0] => 婚姻是爱情的坟墓吗?
)
)
请问要怎么做呀????
Array
(
[0] => Array
(
[0] => 婚姻是爱情的坟墓吗?
) [1] => Array
(
[0] => 该不该发起战争
) [2] => Array
(
[0] => 该不该发起战争
) [3] => Array
(
[0] => 输入话题标题
) [4] => Array
(
[0] => 输入话题标题
) [5] => Array
(
[0] => 输入话题标题
))
想要的结果是:
Array
(
[0] => Array
(
[0] => 输入话题标题
) [1] => Array
(
[0] => 该不该发起战争
) [2] => Array
(
[0] => 婚姻是爱情的坟墓吗?
)
)
请问要怎么做呀????
0 => array(0 => '婚姻是爱情的坟墓吗?'),
1 => array(0 => '该不该发起战争'),
2 => array(0 => '该不该发起战争'),
3 => array(0 => '输入话题标题'),
4 => array(0 => '输入话题标题'),
5 => array(0 => '输入话题标题')
);
$b = array();
foreach($a as $v){
if(isset($b[$v[0]])){
++$b[$v[0]];
}else{
$b[$v[0]] = 1;
}
}
$b = array_flip($b);
echo '<pre>';print_r($b);
0 => array(0 => '婚姻是爱情的坟墓吗?'),
1 => array(0 => '该不该发起战争'),
2 => array(0 => '该不该发起战争'),
3 => array(0 => '输入话题标题'),
4 => array(0 => '输入话题标题'),
5 => array(0 => '输入话题标题')
);
$b = array();
foreach($a as $v){
if(isset($b[$v[0]])){
++$b[$v[0]];
}else{
$b[$v[0]] = 1;
}
}
$b = array_reverse(array_flip($b));
echo '<pre>';print_r($b);/*
输出:
Array
(
[0] => 输入话题标题
[1] => 该不该发起战争
[2] => 婚姻是爱情的坟墓吗?
)
*/
0 => array(0 => '婚姻是爱情的坟墓吗?'),
1 => array(0 => '该不该发起战争'),
2 => array(0 => '该不该发起战争'),
3 => array(0 => '输入话题标题'),
4 => array(0 => '输入话题标题'),
5 => array(0 => '输入话题标题')
);
$t = array_map('current', $a);//降维
$c = array_unique($t);//去重
$a = array_chunk($c, 1);//拆分
print_r($a);Array
(
[0] => Array
(
[0] => 婚姻是爱情的坟墓吗?
) [1] => Array
(
[0] => 该不该发起战争
) [2] => Array
(
[0] => 输入话题标题
))
$a = array(
0 => array(0 => '婚姻是爱情的坟墓吗?'),
1 => array(0 => '该不该发起战争'),
2 => array(0 => '该不该发起战争'),
3 => array(0 => '输入话题标题'),
4 => array(0 => '输入话题标题'),
5 => array(0 => '输入话题标题')
);
$b = array();
foreach($a as $v){
if(isset($b[serialize($v)])){
++$b[serialize($v)];
}else{
$b[serialize($v)] = 1;
}
}
$b = array_reverse(array_flip($b));
foreach($b as &$v){
$v = unserialize($v);
}
echo '<pre>';print_r($b);/*
输出:
Array
(
[0] => Array
(
[0] => 输入话题标题
) [1] => Array
(
[0] => 该不该发起战争
) [2] => Array
(
[0] => 婚姻是爱情的坟墓吗?
))
*/
0 => array(0 => '婚姻是爱情的坟墓吗?'),
1 => array(0 => '该不该发起战争'),
2 => array(0 => '该不该发起战争'),
3 => array(0 => '输入话题标题'),
4 => array(0 => '输入话题标题'),
5 => array(0 => '输入话题标题')
);
$b = array();
foreach($a as $v){
if(isset($b[serialize($v)])){
++$b[serialize($v)];
}else{
$b[serialize($v)] = 1;
}
}
$b = array_flip($b);
ksort($b);
$b = array_reverse($b);
foreach($b as &$v){
$v = unserialize($v);
}
echo '<pre>';print_r($b);
$a = array(
0 => array(0 => '婚姻是爱情的坟墓吗?'),
1 => array(0 => '该不该发起战争'),
2 => array(0 => '该不该发起战争'),
3 => array(0 => '输入话题标题'),
4 => array(0 => '输入话题标题'),
5 => array(0 => '输入话题标题')
);
$t = array_map('current', $a);//降维
$p = array_count_values($t);//统计次数
arsort($p);//降序
$c = array_flip($p);//交换键、值
$a = array_chunk($c, 1);//拆分
Array
(
[0] => Array
(
[0] => 输入话题标题
) [1] => Array
(
[0] => 该不该发起战争
) [2] => Array
(
[0] => 婚姻是爱情的坟墓吗?
))
Array
(
[输入话题标题] => 4
[哈哈] => 1
[该不该发起战争] => 1
[婚姻是爱情的坟墓吗?] => 1
)结果只剩下两个了
$a = array(
0 => array(0 => '婚姻是爱情的坟墓吗?'),
1 => array(0 => '该不该发起战争'),
2 => array(0 => '该不该发起战争'),
3 => array(0 => '输入话题标题'),
4 => array(0 => '输入话题标题'),
5 => array(0 => '输入话题标题'),
6 => array(0 => 'abc'),
7 => array(0 => 'abc'),
8 => array(0 => 'abc')
);
$b = array();
foreach($a as $v){
if(isset($b[serialize($v)])){
++$b[serialize($v)];
}else{
$b[serialize($v)] = 1;
}
}
$c = array();
foreach($b as $k => $v){
$k = unserialize($k);
if(isset($c[$v])){
$c[$v + 1] = $k;
}else{
$c[$v] = $k;
}
}
ksort($c);
$c = array_reverse($c);
echo '<pre>';print_r($c);