0

以前のいくつかの配列のすべての複製を含むいくつかの配列を作成しました。例えば:

[475] => string(9) "038231370" 
[5135] => string(9) "038231370" 
[13236] => string(9) "038231370" 
[5575]=> string(9) "038231370" 
[4357]=> string(9) "038293950" 
[10509]=> string(9) "038293950" 
[6031]=> string(10) "0038303163" 
[5529]=> string(10) "0038303163" 
[534]=> string(10) "0038303163" 
[5303] ...

あなたができるように、いくつかの重複は2倍以上です。私がやりたいのは、同じ値とそのキーを含む異なる配列を作成することです。

function compare($array) {
    $per_array = array();
    $old_key    = NULL;
    $old_value    = NULL;
    foreach($array as $key => $value){

        if ($old_value === $value) {
            $per_array[$old_key]    = $old_value;
            $per_array[$key]        = $value;
        }   
        else {(DO SOME TESTS)unset($per_array);}


        $old_value  = $value;
        $old_key    = $key; 

    }   
}

しかし、私は何かが恋しいようです。助けが重要だと思います。

私が期待する配列の一例は次のとおりです。

per_array(4)= {[475] => string(9) "038231370" [5135] => string(9) "038231370" [13236] => string(9) "038231370" [5575] => string(9 )"038231370"}

per_array(3)= {[4357] => string(9) "038293950" [10509] => string(9) "038293950"}

等々...

4

2 に答える 2

0

これは簡単な例です

  • ユニークな価値
  • キーを使用して値を複製する

コード

$a = $u = $d = array();

// Build Temp Data with duplicates
for($i = "A"; $i < "M"; $i ++) {
    $a[$i] = mt_rand(0, 3);
}

//Simple Loop
foreach ( $a as $k => $v ) {
    in_array($v, $u) ? $d[$k] = $v : $u[$k] = $v;
}

var_dump($a); // Original array
var_dump($u); // Unique
var_dump($d); // Duplicate with their keys

出力

array (size=12)
  'A' => int 0
  'B' => int 2
  'C' => int 1
  'D' => int 2
  'E' => int 3
  'F' => int 3
  'G' => int 3
  'H' => int 2
  'I' => int 3
  'J' => int 1
  'K' => int 0
  'L' => int 0

array (size=4)
  'A' => int 0
  'B' => int 2
  'C' => int 1
  'E' => int 3

array (size=8)
  'D' => int 2
  'F' => int 3
  'G' => int 3
  'H' => int 2
  'I' => int 3
  'J' => int 1
  'K' => int 0
  'L' => int 0
于 2012-11-16T09:36:23.013 に答える