php数组获取差集,php数组求差集问题
最近在寫一個項目 項目中 涉及到數(shù)組差集問題 代碼如下
$arr1 = [
[
"cardId" => 1010284722,
"beforeAmounts" => 100,
"afterAmounts" => 20,
"diffAmounts" => -80,
"diffStatus" => 1
],
[
"cardId" => 1010284722,
"beforeAmounts" => 100,
"afterAmounts" => 200,
"diffAmounts" => 100,
"diffStatus" => 0
],
[
"cardId" => 177561410,
"beforeAmounts" => 2000,
"afterAmounts" => 1000,
"diffAmounts" => -1000,
"diffStatus" => 1
],
[
"cardId" => 177561410,
"beforeAmounts" => 2000,
"afterAmounts" => 1000,
"diffAmounts" => -1000,
"diffStatus" => 1
],
[
"cardId" => 1077060068,
"beforeAmounts" => 789,
"afterAmounts" => 100,
"diffAmounts" => -689,
"diffStatus" => 1
],
[
"cardId" => 1077060068,
"beforeAmounts" => 789,
"afterAmounts" => 100,
"diffAmounts" => -689,
"diffStatus" => 1
]
];
$arr2 = [
[
"cardId" => 177561410,
"beforeAmounts" => 2000,
"afterAmounts" => 1000,
"diffAmounts" => -1000,
"diffStatus" => 1
],
[
"cardId" => 1077060068,
"beforeAmounts" => 789,
"afterAmounts" => 100,
"diffAmounts" => -689,
"diffStatus" => 1
]
];
echo 'arr1個數(shù):'.count($arr1).'
';
echo 'arr1集合: ';
var_dump($arr1);
echo '
';
echo 'arr2個數(shù):'.count($arr2).'
';
echo 'arr2集合: ';
var_dump($arr2);
echo '
';
//這是我求差集的方法
foreach($arr1 as $k=>$v) if(in_array($v, $arr2)) unset($arr1[$k]);
echo '差集個數(shù):'.count($arr1).'
';
echo '差集集合:';
var_dump($arr1);
因為有重復的數(shù)據(jù) 這樣求出來之后 差集的個數(shù) + $arr2 的個數(shù) 不等于 $arr1 的個數(shù)
問 : 怎么樣求差集才能
差集的個數(shù) + $arr2 的個數(shù) = $arr1 的個數(shù)
而且最后求出的差集 集合也包含那兩個重復的數(shù)組元素 "cardId" => 177561410 和 "cardId" => 1077060068
總結
以上是生活随笔為你收集整理的php数组获取差集,php数组求差集问题的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 苹果笔记本能不能用python_“苹”除
- 下一篇: 默纳克系统服务器怎么改不了参数,默纳克3
