PHP array_diff_uassoc() -funktio

esimerkki

vertaillaan kahden taulukon avaimia ja arvoja (käyttämällä käyttäjän määrittämää funktiota avainten vertailuun) ja palautetaan erojen taulukko:

<?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);
?>

运行实例

määrittely ja käyttö

array_diff_uassoc() -funktio vertailee kahta (tai useampaa) taulukon avaimia ja arvoja ja palauttaa erojen taulukon.

huomautus:Tämä funktio käyttää käyttäjän määrittämää funktiota avainten vertailuun!

Tämä funktio vertailee kahta (tai useampaa) taulukon avaimia ja arvoja ja palauttaa erojen taulukon, joka sisältää kaikki verrattujen taulukoidenarray1)中,但是不在任何其他参数数组(array2array3 等等)中的键名和键值。

syntaksi

array_diff_uassoc(array1,array2,array3...myfunction);
parametrit kuvaus
array1 välttämätön. Ensimmäinen taulukko, jota verrataan muihin taulukoihin.
array2 välttämätön. Ensimmäinen taulukko, jota verrataan.
array3,... valinnainen. Toisia taulukoita, joita vertaillaan ensimmäisen taulukon kanssa.
myfunction välttämätön. Määrittää kutsuttavan vertailutoiminnon merkkijonon. Jos ensimmäinen parametri on pienempi, yhtä suuri tai suurempi kuin toinen parametri, vertailutoiminnon on palautettava pienempi, yhtä suuri tai suurempi kokonaisluku 0:n.

selitys

array_diff_uassoc() -funktio käyttää käyttäjän määrittämää paluutoimintoa (callback) indeksitarkistukseen kahden tai useamman taulukon erojen laskemiseksi. Palauttaa taulukon, joka sisältää kaikkien verrattujen taulukoiden array1 中但是不在任何其他参数数组中的值。

注意,与 array_diff() 函数 不同的是,键名也要进行比较。

参数 myfunction 是用户自定义的用来比较两个数组的函数,该函数必须带有两个参数 - 即两个要进行对比的键名。因此与函数 array_diff_assoc() 的行为正好相反,后者是用内部函数进行比较的。

返回的数组中键名保持不变。

技术细节

返回值: 返回差集数组,该数组包括了所有在被比较的数组(array1)中,但是不在任何其他参数数组(array2array3 等等)中的键名和键值。
PHP 版本: 5+

更多实例

例子 1

比较三个数组的键名和键值(使用用户自定义函数来比较键名),并返回差集:

<?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);
?>

运行实例