我似乎可以解决这个问题。 我有两个来自sql
的访客/国家/地区列表我们,美国,英国,FR,英国,英国,英国
和
美国,英国
我用array_count_values()
:
Array ( [us] => 2 [uk] => 4 [fr] => 1 )
Array ( [us] => 1 [uk] => 1)
现在,我想得到第一个减去第二个
Array ( [us] => 1 [uk] => 3 [fr] => 1 )
这可能吗?
答案 0 :(得分:8)
foreach($arr1 as $key => &$val){
if(isset($arr2[$key])){
$val -= $arr2[$key];
}
}
答案 1 :(得分:3)
试试这个:
foreach($bigArray as $country => $count)
{
if(isset($smallArray[$country]))
{
$bigArray[$country] -= $smallArray[$country];
}
}
答案 2 :(得分:0)
如果第二个数组中的值不在第一个数组中,这将起作用:
$array1 = array("us" => 2, "uk" => 4, "fr" => 1);
$array2 = array("us" => 1, "uk" => 1, "ca" => 1);
$keys = array_keys(array_merge($array1, $array2));
foreach ($keys as $key) {
$result[$key] = (isset($array1[$key]) ? $array1[$key] : 0) - (isset($array2[$key]) ? $array2[$key] : 0);
}
结果:
Array ( [us] => 1 [uk] => 3 [fr] => 1 [ca] => -1 )
答案 3 :(得分:-2)
<?php
$array1 = array(1,2,3,4,5,6,a,b,c,d);
$array2 = array(a,b,c,d);
$result = array_diff($array1, $array2);
print_r($result);
?>
答案 4 :(得分:-3)
这有助于
$result = array_intersect($array1, $array2);