代码之家  ›  专栏  ›  技术社区  ›  mcgrailm

从多维数组中提取值

  •  0
  • mcgrailm  · 技术社区  · 15 年前

    我有两个这样的数组

    $array1 = Array
     (
         [0] => Array
             (
                 ['story_id'] => 47789
             )
    
         [1] => Array
             (
                 ['story_id'] => 47779
             )
    
         [2] => Array
             (
                 ['story_id'] => 47776
             )
    
         [3] => Array
             (
                 ['story_id'] => 47773
             )
    
         [4] => Array
             (
                 ['story_id'] => 47763
             )
     )
    
    
    $array2 = Array
     (
         [0] => Array
             (
                 ['story_id'] => 47789
             )
    
         [1] => Array
             (
                 ['story_id'] => 47777
             )
    
         [2] => Array
             (
                 ['story_id'] => 47776
             )
    
         [3] => Array
             (
                 ['story_id'] => 47773
             )
    
         [4] => Array
             (
                 ['story_id'] => 47763
             )
     )
    

    我想知道array1和array2的区别,所以我尝试使用

        $results = array_diff($array1, $array2);
    

    但结果是空的,有什么简单的方法可以解决这个问题,或者我最好把数组分解,如果是这样,有什么简单的方法可以做到吗?

    1 回复  |  直到 15 年前
        1
  •  0
  •   Bang Dao    15 年前

    因为那 array_diff 仅用于一维数组。对于2数组,让我们使用php.net中的一些代码

    function multidimensional_array_diff($a1, $a2)
    {
    $r = array();
    
    foreach ($a2 as $key => $second) {
        foreach ($a1 as $key => $first) {
    
            if (isset($a2[$key])) {
                foreach ($first as $first_value) {
                    foreach ($second as $second_value) {
                        if ($first_value == $second_value) {
                            $true = true;
                            break;
                        }
                    }
                    if (!isset($true)) {
    
                        $r[$key][] = $first_value;
                    }
                    unset($true);
                }
            } else {
                $r[$key] = $first;
            }
        }
    }
    return $r;
    }
    
    推荐文章