我创建了一些包含以前某些数组的所有重复项的数组。例如:
[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”}
依旧......
答案 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;