PHP数组_dif()在两个数组的数组上
我有两个数组,其中包含一个国家名称和相应的分析指标。我需要减去它们(基于第一个子数组值,即国家),以返回仅在第一个子数组中找到而不在第二个子数组中找到的国家的第三个数组。输入和输出示例: 第一个数组:PHP数组_dif()在两个数组的数组上,php,arrays,object,array-difference,Php,Arrays,Object,Array Difference,我有两个数组,其中包含一个国家名称和相应的分析指标。我需要减去它们(基于第一个子数组值,即国家),以返回仅在第一个子数组中找到而不在第二个子数组中找到的国家的第三个数组。输入和输出示例: 第一个数组: Array ( [0] => Array ( [0] => Afghanistan [1] => 1 ) [1] => Array (
Array
(
[0] => Array
(
[0] => Afghanistan
[1] => 1
)
[1] => Array
(
[0] => Albania
[1] => 1
)
)
Array
(
[0] => Array // not found in 1st array by country name
(
[0] => Australia
[1] => 2
)
[1] => Array
(
[0] => Albania
[1] => 2
)
)
第二个数组:
Array
(
[0] => Array
(
[0] => Afghanistan
[1] => 1
)
[1] => Array
(
[0] => Albania
[1] => 1
)
)
Array
(
[0] => Array // not found in 1st array by country name
(
[0] => Australia
[1] => 2
)
[1] => Array
(
[0] => Albania
[1] => 2
)
)
预期输出
Array
(
[0] => Array
(
[0] => Australia
[1] => 2
)
)
array_dif()代码>没有返回任何差异,尽管我的数据集中有很多差异。如何创建这个减法的第三个数组(PHP)?试试这个
$array1=array('0'=>Array('0' => 'Afghanistan','1' => '1'),
'1'=>Array('0' => 'Albania','1' => '1') );
$array2 = Array('0' => Array ('0' => 'Australia','1' => '2'),
'1' => Array('0' => 'Albania','1' => '2'));
$finalArray = diffArray($array1,$array2); //returns your expected result
function diffArray($array1,$array2){
$newarray = array();
foreach ($array2 as $tmp){
$duplicate = false;
foreach($array1 as $tmp1){
if ($tmp[0] == $tmp1[0]){
$duplicate=true;
}
}
if(!$duplicate)
$newarray[] = $tmp;
}
return $newarray;
}