0

我有一个这样的数组

$a=array(0=>1,1=>1,2=>5,3=>5,4=>10)

现在我想找出重复的值并将它们添加到这样的数组中:

array_push($arrayOfones,$a['0'],$a['1'];
array_push($arrayOfFive,$a['2'],$a['5'];
4

3 回答 3

3

你可以看看array_count_values

$ret = array_count_values($a);

// get the duplicate values
$ret = array_filter($ret, function ($var) {
  return $var > 1;
});

array_walk($ret, function(&$var, $key) {
  $var = array_fill(0, $var, $key);
});

var_dump($ret); // $ret[1] is $arrayOfOnes, $ret[5] is $arrayOfFive
于 2012-10-23T07:14:20.707 回答
1

除了count()之外没有数组函数更简单:

foreach($a as $key=>$value){
    $ip[$value][] = $key;
}

foreach($ip as $key=>$inner_arr){  
    if(count($inner_arr) > 1)
    $dup[$key] = $inner_arr ;
}
于 2012-10-23T07:17:39.823 回答
0
    $a=array(0=>1,1=>1,2=>5,3=>5,4=>10); 
    $c=0;
    foreach ($a as $key => $row) {

        if (!isset($rs[$row])) {
            $rs[$row][$key]= $key;
             $c = 1;
             $res[$row]['count'] = $c;
             $res[$row]['values'][$key] = $key;
        } 
        else {
            $res[$row]['count']++;
            $res[$row]['values'][$key] = $key;
        }
    }
于 2012-10-23T16:42:05.840 回答