php在数组里怎么去掉非重复的值,保留重复值。

iwillfling 2017-09-13 06:26:41
例如 有一个数组集合。 for 循环后得每一个数组 求每个元素连续重复次数。
array1 = array(a,b,c,d,e,f,g);
array2 = array(a,c,d,e);
array3 = array(b,c,e,f);
array4 = array(c,d,f);

最终的结果是 'a'=>2 , 'c'=>4,'d'=>2,'e'=>3,
过程是 以array1 为基础,
a在array2 有重复,则a的次数是2次。 在array3没出现。
b在array2里没出现,就删掉。以后出现都不算了。
c连续在array2,array3,array4都有出现,次数是4
d在array2 有重复,次数+1,在array3没出现,则d的次数是2次,就到此为止 ,即使在array4又出现。也不算,不是连续的。
同理。e的次数是3,array1里的f和g没在array2中出现,也删掉。

php语句该怎么写?




有一个初始数组array1 = array(a,b,c,d,e,f,g);
第一轮,第二个数组array2=(a,c,d,e); 和第一个
...全文
193 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2017-09-13
  • 打赏
  • 举报
回复
$array1 = array('a','b','c','d','e','f','g');
$array2 = array('a','c','d','e');
$array3 = array('b','c','e','f');
$array4 = array('c','d','f');
print_r(foo($array1,$array2,$array3,$array4));
function foo() {
  $p = func_get_args();
  $a = array_shift($p);

  foreach($a as $k) {
    $n = 0;
    foreach($p as $t)
     if(in_array($k, $t)) $n++;
     else break;
    if($n) $r[$k] = $n+1;
  }
  return $r;
}

Array
(
    [a] => 2
    [c] => 4
    [d] => 2
    [e] => 3
)

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧