multidimensional array difference php

前端 未结 12 1148
离开以前
离开以前 2020-12-01 17:05

I have two multidimensional arrays and I want the difference. For eg. I have taken two-dimensional two arrays below

$array1 = Array (
       [a1] => Array         


        
12条回答
  •  失恋的感觉
    2020-12-01 17:11

    Try the function:

     1, 'white' => ['purple' => 4, 'green' => 3], 'red' => 2];
    $filter = ['blue' => 6, 'white' => ['yellow' => 7, 'green' => 5], 'red' => 2];
    
    /**
     * @param array $input
     * @param array $filter
     * @return array
     */
    function multidimensionalArrayDiffKey(array $input, array $filter)
    {
        if ($diff = array_diff_key($input, $filter)){
            return $diff;
        }else{
            foreach($input as $key => $value){
                if(is_array($value) && $diff = multidimensionalArrayDiffKey($value, $filter[$key])){
                    return [$key => $diff];
                }
            }
        }
        return [];
    }
    print_r(multidimensionalArrayDiffKey($input, $filter));
    

    Result:

    Array
    (
        [white] => Array
            (
                [purple] => 4
            )
    
    )
    

提交回复
热议问题