PHP:使用数组的所有副本创建单个数组

时间:2012-11-16 09:19:51

标签: php arrays duplicates

我创建了一些包含以前某些数组的所有重复项的数组。例如:

[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] ...

因为你可以复制一些以上的一倍。我想要做的是创建包含相同值及其键的不同数组。

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] =>串(9)   “038231370”[13236] => string(9)“038231370”[5575] =>串(9)   “038231370”}

     

per_array(3)= {[4357] => string(9)“038293950”[10509] =>串(9)   “038293950”}

依旧......

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

试试这段代码:

$array_count = array();

foreach ($array as $key => $arr) :
    $array_count[$arr][] = $key;
endforeach;
相关问题