0

配列に問題があります。友達がいません:)

私はこの配列を持っています:

Array
(
    [0] => 2012163115
    [1] => 2012163115
    [2] => 2012161817
    [3] => 201214321971
    [4] => 201214321971
    [5] => 201214321971
)

そして、すべての変数が複数回表示されるので、これが必要です

Array
(
    [0] => 2012163115
    [1] => 201214321971
)

私はこれを試してみます

foreach ($array as $val) {
                    if (!in_array($val, $array_temp)) {
                        $array_temp[] = $val;
                    } else {
                        array_push($duplis, $val);
                    }
                }

しかし、結果は

Array
(
    [0] => 2012163115
    [1] => 201214321971
    [2] => 201214321971
)

私の間違いはどこにありますか?手伝ってくれてありがとう!

4

4 に答える 4

3

array_unique()あなたのためにあります。

編集:ops私は「複数回」句に気づいていませんでした。その場合:

$yourArray = array('a', 'a', 'b', 'c');

$occurrences = array();

array_walk($yourArray, function($item) use(&$occurrences){

    $occurrences[$item]++;

});


$filtered = array();

foreach($occurrences as $key => $value){

    $value > 1 && $filtered[] = $key;

}

var_dump($filtered);
于 2012-12-29T18:54:15.167 に答える
2
$array = array(
  '2012163115',
  '2012163115',
  '2012161817',
  '201214321971',
  '201214321971',
  '201214321971',
);

$duplication = array_count_values($array);
$duplicates = array();
array_walk($duplication, function($key, $value) use (&$duplicates){
  if ($key > 1)
    $duplicates[] = $value;
});
var_dump($duplicates);
于 2012-12-29T19:04:40.850 に答える
0

http://php.net/manual/en/function.array-unique.php#81513を参照してください。

これらは、SO が投稿を受け入れるようにするために追加された文字です。

于 2012-12-29T19:01:50.680 に答える
0
$array_counting = array();
foreach ($array as $val)
    if ( ! in_array($val, $array_counting))
    {
        $array_counting[$val] ++; // counting  
    }

$array_dups = array();
foreach ($array_counting as $key => $count)
{
    if ($count > 1)
        $array_dups[] = $key; // this is more than once
}
于 2012-12-29T19:09:49.173 に答える