PHP array_diff_uassoc() funktion
eksempel
Sammenlign nøglenavne og nøgleværdier mellem to array'er (brug en brugerdefineret funktion til at sammenligne nøglenavne) og returner forskelsmængden:
<?php function myfunction($a,$b) { if ($a===$b) { return 0; } return ($a>$b)?1:-1; } $a1=array("a"=>"red","b"=>"green","c"=>"blue"); $a2=array("d"=>"red","b"=>"green","e"=>"blue"); $result=array_diff_uassoc($a1,$a2,"myfunction"); print_r($result); ?>
definition og brug
array_diff_uassoc() funktion bruges til at sammenligne nøglenavne og nøgleværdier mellem to (eller flere) array'er og returnerer forskelsmængden.
Bemærkninger:Denne funktion bruger en brugerdefineret funktion til at sammenligne nøglenavne!
Denne funktion sammenligner nøglenavne og nøgleværdier mellem to (eller flere) array'er og returnerer en forskelsmængde array, der inkluderer alle elementer, der findesarray1osv.), men ikke i nogen andre parameterarrayer (array2 eller array3 osv.) nøgler og værdier.
syntaks
array_diff_uassoc(array1,array2,array3,...myfunction);
parametre | beskrivelse |
---|---|
array1 | obligatorisk. Den første array, der skal sammenlignes med andre array'er. |
array2 | obligatorisk. Array, der skal sammenlignes med den første array. |
array3,... | valgfri. Andre array'er, der skal sammenlignes med den første array. |
myfunction | obligatorisk. Definerer en streng, der indeholder den komparative funktion, der kan kaldes. Hvis den første parameter er mindre end, lig med eller større end den anden parameter, skal den komparative funktion returnere et heltal mindre end, lig med eller større end 0. |
beskrivelse
array_diff_uassoc() funktion bruger en brugerdefineret callback-funktion (callback) til at udføre indekskontrol for at beregne forskelsmængden mellem to eller flere array'er. Returnerer et array, der inkluderer de elementer, der findes array1 men ikke i nogen andre parameterarrayer.
Bemærk, at forskellen med array_diff() funktionen er, at nøgler også sammenlignes.
Parameteren myfunction er en brugerdefineret funktion til at sammenligne to arrayer, som skal have to parametre - de nøgler, der skal sammenlignes. Derfor er adfærden præcis modsat array_diff_assoc() funktionen, som bruger en intern funktion til sammenligning.
Nøglen i det returnerede array forbliver uændret.
Tekniske detaljer
Returværdi: | Returner forskelsarrayen, som indeholder alle værdier, der findes i de sammenlignede arrayer (array1osv.), men ikke i nogen andre parameterarrayer (array2 eller array3 osv.) nøgler og værdier. |
PHP version: | 5+ |
Flere eksempler
Eksempel 1
Sammenlign nøgler og værdier i tre arrayer (brug brugerdefinerede funktioner til at sammenligne nøgler) og returner forskellen:
<?php function myfunction($a,$b) { if ($a===$b) { return 0; } return ($a>$b)?1:-1; } $a1=array("a"=>"red","b"=>"green","c"=>"blue"); $a2=array("a"=>"red","b"=>"green","d"=>"blue"); $a3=array("e"=>"yellow","a"=>"red","d"=>"blue"); $result=array_diff_uassoc($a1,$a2,$a3,"myfunction"); print_r($result); ?>