1

配列について質問があります。

IDの配列を作成しました。

配列はこのように少し見えます。

$iIds[0] = 12  
$iIds[1] = 24  
$iIds[2] = 25  
$iIds[3] = 25  
$iIds[4] = 25  
$iIds[5] = 30

ここで、値のいずれかが配列に複数回含まれているかどうかを確認するコードが必要です。次に、値が配列に 3 回ある場合は、その値を別の配列に挿入します。

array_count_values() を使用してみましたが、値をキーとして返します。

誰でもこれで私を助けることができますか?

4

3 に答える 3

2
$iIds[0] = 12  
$iIds[1] = 24  
$iIds[2] = 25  
$iIds[3] = 25  
$iIds[4] = 25  
$iIds[5] = 30
$counts = array_count_values($iIds);
$present_3_times = array();
foreach($counts as $v=>$count){
    if($count==3)//Present 3 times
        $present_3_times[] = $v;
}
于 2012-10-31T10:38:42.510 に答える
2
  1. カウント値
  2. フィルター配列
  3. 配列を元の状態に戻します

    $cnt = array_count_values($iIds);

    $filtered = array_filter( $cnt, create_function('$x', 'return $x == 3;'));

    $final = array_flip($filtered);

また

array_flip(array_filter( array_count_values($iIds), create_function('$x', 'return $x == 3;')));

参照: http://codepad.org/WLaCs5Pe

編集

最終的な配列に複数の値が含まれる可能性がある場合は、フィルター処理された配列を反転する代わりに、単に array_keys を使用することをお勧めします。次のようになります。

$cnt = array_count_values($iIds);

$filtered = array_filter( $cnt, create_function('$x', 'return $x == 3;'));

$final = array_keys($filtered);

参照: http://codepad.org/ythVcvZM

于 2012-10-31T10:48:27.137 に答える
1

配列を一意に作成するにはarray_uniquephp関数を使用し、配列のキーを再配置するには、array_values以下に示すようにphp関数を使用します。

$iIds[0] = 12 ;
$iIds[1] = 24 ; 
$iIds[2] = 25 ;
$iIds[3] = 25 ; 
$iIds[4] = 25 ;
$iIds[5] = 30 ;


$unique_arr = array_unique($iIds);
$unique_array  = array_values($unique_arr);

print_r($unique_array);

値の配列を取得するために、重複値として配列に 3 回来ます

$iIds[0] = 12 ; 
$iIds[1] = 24 ;
$iIds[2] = 25 ;
$iIds[3] = 25 ;
$iIds[4] = 25 ;
$iIds[5] = 30 ;

$arr =  array_count_values($iIds);

$now_arr = array();
foreach($arr AS $val=>$count){
   if($count == 3){
      $now_arr[] = $val; 
   }
 }
 print_r($now_arr);

ありがとう

于 2012-10-31T10:51:50.480 に答える