例えば:
$arr = array(3,5,2,5,3,9);
一般的な要素、つまり 3,5 のみを出力として表示したい。
これが私の試みです:
<?php
$arr = array(3,5,2,5,3,9);
$temp_array = array();
foreach($arr as $val)
{
if(isset($temp_array[$val]))
{
$temp_array[$val] = $val;
}else{
$temp_array[$val] = 0;
}
}
foreach($temp_array as $val2)
{
if($val2 > 0)
{
echo $val2 . ', ';
}
}
?>
-- 出力 --
3、5、
次のことを試してください。
$arr = array(3,5,2,5,3,9);
foreach($arr as $key => $val){
//remove the item from the array in order
//to prevent printing duplicates twice
unset($arr[$key]);
//now if another copy of this key still exists in the array
//print it since it's a dup
if (in_array($val,$arr)){
echo $val . " ";
}
}
出力:
3 5
追加:(
組み込み関数を使用せずに)自分で実装するように求められた理由は、次のような回答を避けるためだったと思います。
$unique = array_unique($arr);
$dupes = array_diff_key( $arr, $unique );