PHP:使用数组的所有副本创建单个数组
我已经创建了一些数组,其中包含了以前一些数组的所有副本。例如:PHP:使用数组的所有副本创建单个数组,php,arrays,duplicates,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" [603
[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_数组(4)={[475]=>string(9)“038231370”[5135]=>string(9)
“038231370”[13236]=>字符串(9)“038231370”[5575]=>字符串(9)
“038231370”}
per_数组(3)={[4357]=>string(9)“038293950”[10509]=>string(9)
“038293950”}
等等…这里是一个简单的
- 唯一值
- 使用其键复制值
$array_count = array();
foreach ($array as $key => $arr) :
$array_count[$arr][] = $key;
endforeach;
举一个初始数组+结果数组的例子会很有帮助:)我不太理解你的问题。您要做的是从数组中删除重复值?不确定您的输入数组是什么。请参阅array_intersect()。我刚刚编辑了我的帖子@Lao我不想删除重复项,我想在取消设置数组之前运行一些检查。我有一个这种格式的数组,正如我在示例中所写的,包含字符串,我希望结果如图所示。我的目的是每次按数组()保存数组,其值仅与我在示例中编辑的相同。所以,
foreach($a as$k=>$v){in_数组($v,$u)?$d[$k]=$v:$u[$k]=$v;}
这不是我需要的,对吧?你所说的每_数组()
是什么意思?它不在questionper中。数组是我使用的数组的名称。我的意思是,如果更简单的话,我想创建一个包含重复项键的永久数组:peru数组(4)={475135132365575}
我正在处理您的示例。。如果我错了,请纠正我。。您需要所有重复阵列及其密钥??正确吗?如果您只需要重复的键,那么您可以拥有array\u key($d)
它将返回重复项的所有键。我想可能是foreach($key=>array$value){If($old\u value===$value){$per\u array[j]=$key;/$per\u array[$old\u key]=$old_value;//$per_数组[$key]=$value;$j++}否则{语句未设置($per_数组);$j=0;
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
$array_count = array();
foreach ($array as $key => $arr) :
$array_count[$arr][] = $key;
endforeach;