Kimai_Utility_ArrayUtility::arrayDiffAssocRecursive PHP Method

arrayDiffAssocRecursive() public static method

This method is a recursive version of php array_diff_assoc()
public static arrayDiffAssocRecursive ( array $array1, array $array2 ) : array
$array1 array Source array
$array2 array Reduce source array by this array
return array Source array reduced by keys also present in second array
    public static function arrayDiffAssocRecursive(array $array1, array $array2)
    {
        $differenceArray = array();
        foreach ($array1 as $key => $value) {
            if (!array_key_exists($key, $array2)) {
                $differenceArray[$key] = $value;
            } elseif (is_array($value)) {
                if (is_array($array2[$key])) {
                    $differenceArray[$key] = self::arrayDiffAssocRecursive($value, $array2[$key]);
                }
            }
        }
        return $differenceArray;
    }

Usage Example

Ejemplo n.º 1
0
 /**
  * @test
  */
 public function arrayDiffAssocRecursiveHandlesMixedArrays()
 {
     $array1 = array('key1' => array('key11' => 'value11', 'key12' => 'value12'), 'key2' => 'value2', 'key3' => 'value3');
     $array2 = array('key1' => 'value1', 'key2' => array('key21' => 'value21'));
     $expectedResult = array('key3' => 'value3');
     $actualResult = \Kimai_Utility_ArrayUtility::arrayDiffAssocRecursive($array1, $array2);
     $this->assertEquals($expectedResult, $actualResult);
 }
All Usage Examples Of Kimai_Utility_ArrayUtility::arrayDiffAssocRecursive