本篇主要汇总数据清洗过程经常用到的一些方法,持续更新,以备后用。
PHP
一、数组的交集 array_intersect()
array_intersect() 返回一个数组,该数组包含了所有在 array1
中也同时出现在所有其它参数数组中的值。注意键名保留不变
。
array_intersect ( array array2 [, array $... ] ) : array
<?php
$array1 = array(2, 4, 6, 8, 10, 12);
$array2 = array(1, 2, 3, 4, 5, 6);
var_dump(array_intersect($array1, $array2));
var_dump(array_intersect($array2, $array1));
// ***************
array(3) {
[0]=> int(2)
[1]=> int(4)
[2]=> int(6)
}
array(3) {
[1]=> int(2)
[3]=> int(4)
[5]=> int(6)
}
只有在两个元素相等且具有相同的数据类型时,array_intersect()函数才会认为它们是相同的。
关联数组的交集 array_intersect_assoc()
array_intersect_assoc() 函数用于比较数组的键名
和键值,并返回交集,返回的数组中元素的键名保持不变。
array array_intersect_assoc(array array1,array array2[,arrayN…])
<?php
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "green", "b" => "yellow", "blue", "red");
$result_array = array_intersect_assoc($array1, $array2);
print_r($result_array);
// ***************
Array
(
[a] => green
)
二、数组的差集 array_diff()
array_diff() 函数返回两个数组的差集数组。该数组包括了所有在被比较的数组中,但是不在任何其他参数数组中的键值。
在返回的数组中,键名保持不变。
array array_diff(array array1,array array2[,arrayN…])
<?php
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("e"=>"red","f"=>"green","g"=>"blue");
$result=array_diff($a1,$a2);
print_r($result);
//
Array ( [d] => yellow )
关联数组的差集 array_diff_assoc()
array_diff_assoc() 函数用于比较两个(或更多个)数组的键名和键值 ,并返回差集。
array array_diff_assoc(array array1,array array2[,arrayN…])
<?php
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("a"=>"red","b"=>"green","c"=>"blue");
$result=array_diff_assoc($a1,$a2);
print_r($result);
//
Array ( [d] => yellow )
参考:
https://blog.csdn.net/moguxiansheng1106/article/details/44258499