假设我有两个阵列......
$radicand_array = array(3, 5, 5, 2);
$coeff_array = array(-10, 14, 3, -6);
我希望能够确定$radicand_array
中的哪些(如果有)匹配,并且还知道密钥是什么。所以,在这种情况下,我想知道$radicand_array
的键1和键2匹配。
我需要知道这一点,因为我想在$coeff_array
中添加相应的键值。所以,在这种情况下,我会根据$radicand_array
中的匹配5添加14和3。
我已经尝试了array_count_values()
,但它似乎没有给出我想要的关键值。是否已为此准备好PHP函数?
答案 0 :(得分:0)
使用链接:
固定。好人!
<?php
// $radicand_array = array(3, 5, 5, 2);
$radicand_array = array(3, 5, 5, 2, 3, 3);
$coeff_array = array(-10, 14, 3, -6);
$unique = array_unique($radicand_array);
$duplicates = array_diff_assoc($radicand_array, $unique);
// Duplicate keys
$aDupes = array_keys(array_intersect($radicand_array, $duplicates));
$iSum = 0;
$iCountDupes = count( $aDupes );
for( $i = 0; $i < $iCountDupes; ++$i )
{
if( !empty( $coeff_array[ $aDupes[ $i ] ] ) )
{
$iSum = $iSum + $coeff_array[ $aDupes[ $i ] ];
}
}
var_dump( $iSum );
?>
答案 1 :(得分:0)
这是弗拉基米尔·拉米克的文章的编辑版本,用于处理多组比赛......
$radicand_array = array(3, 5, 5, 2, 3);
$coeff_array = array(-10, 14, 3, -6, 4);
$unique = array_unique($radicand_array);
$duplicates = array_diff_assoc($radicand_array, $unique);
$new_array = array_chunk($duplicates, 1);
// Duplicate keys
$aDupes = array_keys(array_intersect($radicand_array, $new_array[0]));
$iCountDupes = count( $aDupes );
for($i = 0; $i < $iCountDupes; ++$i){
$ans_coeff_1 += $coeff_array[$aDupes[ $i ]];
}
echo $ans_coeff_1;
// Duplicate keys
$bDupes = array_keys(array_intersect($radicand_array, $new_array[1]));
$iCountDupes = count( $bDupes );
for($i = 0; $i < $iCountDupes; ++$i){
$ans_coeff_2 += $coeff_array[$bDupes[ $i ]];
}
echo '<br>' . $ans_coeff_2;