Forum und email

array_diff_uassoc

(PHP 5)

array_diff_uassoc — Finder frem til forskellen på arrays med en ekstra tjek på nøgler og bruger en brugervalgt callback funktion.

Beskrivelse

array array_diff_uassoc ( array $array1 , array $array2 [, array $... ], callback $key_compare_func )

array_diff_uassoc() returnerer et array som inderholder alle de værdier fra array1 der ikke findes i nogen af de andre angivende arrays. Bemærk, at nøglerne bliver brugt til sammenligning, modsat array_diff().

Denne sammenligning bliver gjort ved hjælp af en callback funktion. Denne funktion skal returnerer et tal mindre end, det samme som eller større end nul hvis det første argument skal bestemmes til at være enten mindre end, det samme som eller større end det andet argument. Dette er modsat array_diff_assoc(), hvor en intern funktion bliver brugt til at sammenligne værdierne.

Example#1 array_diff_uassoc() eksempel

<?php
function key_compare_func($a$b
{
    if (
$a === $b) {
        return 
0;
    }
    return (
$a $b)? 1:-1;
}

$array1 = array("a" => "green""b" => "brown""c" => "blue""red");
$array2 = array("a" => "green""yellow""red");
$result array_diff_uassoc($array1$array2"key_compare_func");
print_r($result);
?>

Ovenstående eksempel vil udskrive:

Array
(
    [b] => brown
    [c] => blue
    [0] => red
)

I vores overstående eksempel vil du kunne se at "a" => "green" er tilstede i begge arrays og derfor ikke i det resulterende array. Hvilket 0 => "red" er da det andet argument "red" har nøglen 1.

Sammenligningen af de to indekser bliver tjekket af den tilføjede callback funktion.

Note: Denne funktion tjekker kun en dimension af et multidimensioneret array. Du kan selvfølgelig tjekke dybere i arrayet, f.eks. på denne måde: array_diff_uassoc($array1[0], $array2[0], "key_compare_func");.

Se også array_diff(), array_diff_assoc(), array_udiff(), array_udiff_assoc(), array_udiff_uassoc(), array_intersect(), array_intersect_assoc(), array_uintersect(), array_uintersect_assoc() og array_uintersect_uassoc().