【问题标题】:PHP array_dif() on 2 Arrays of ArraysPHP array_dif() on 2 Arrays of Arrays
【发布时间】:2012-07-30 16:22:09
【问题描述】:

我有两个数组,其中包含一个国家名称和一个相应的分析指标。我需要减去它们(基于第一个子数组值,即国家)以返回仅在第一个而不是在第二个中找到的国家的第三个数组。输入输出示例:

第一个数组:

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 中)?

【问题讨论】:

    标签: php arrays object array-difference


    【解决方案1】:

    试试这个

    $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;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-28
      • 1970-01-01
      • 1970-01-01
      • 2022-12-02
      • 1970-01-01
      • 2014-12-24
      相关资源
      最近更新 更多