Kurssivinkki:
PHP array_uintersect() funktio
Esimerkki
<?php function myfunction($a,$b) { if ($a===$b) { return 0; } return ($a>$b)?1:-1; } Verrataan kahta taulukkoa avainten arvoja (käyttämällä käyttäjän määrittämää vertailutoimintoa) ja palautetaan risteyse: $a1=array("a"=>"red","b"=>"green","c"=>"blue"); $result=$a2=array("a"=>"blue","b"=>"black","e"=>"blue"); print_r($result); ?>
array_uintersect($a1,$a2,"myfunction");
Määrittely ja käyttö
array_uintersect() funktio verrataan kahta (tai useampaa) taulukkoa avainten arvoja ja palauttaa risteyksen.Kommentti:
Tämä funktio verrataan kahta (tai useampaa) taulukkoa avainten arvoja ja palauttaa risteystaulukon, joka sisältää kaikki verrattavissa olevissa taulukoissa olevat avaimet.array1)中,同时也在任何其他参数数组(array2 或 array3 等等)中的键值。
Syntaksi
array_uintersect(array1,array2,array3...myfunction)
Parametrit | Kuvaus |
---|---|
array1 | Välttämätön. Vertailtava ensimmäinen taulukko muiden taulukoiden kanssa. |
array2 | Välttämätön. Vertailtava taulukko ensimmäisen taulukon kanssa. |
array3,... | Valinnainen. Vertailtavat toiset taulukot ensimmäisen taulukon kanssa. |
myfunction |
Välttämätön. Merkkijonovarainto, joka määrittelee kutsuttavan vertailutoiminnon. Jos ensimmäinen parametri on pienempi tai yhtä suuri kuin toinen parametri, vertailutoiminnon on palautettava pienempi tai yhtä suuri kuin 0 oleva kokonaisluku. |
Selitys
käyttää käyttäjän määrittämää paluutoimintoa myfunction lasketa kahden tai useamman taulukon risteytys (eli array1 sisältää kaikki muiden taulukoiden kanssa olevat taulukon elementit), ja palauttaa tulostaulukon.
Vain avainten vertailu, ei avainten nimeä, kuten "a"=>1 ja "b"=>1 nämä kaksi elementtiä pidetään yhtä suurena.
myfunction 参数指定的函数用于比较元素是否相等。myfunction 函数带有两个将进行比较的参数。如果第一个参数小于第二个参数,则函数返回一个负数,如果两个参数相等,则要返回 0,如果第一个参数大于第二个,则返回一个正数。
返回的数组中键名保持不变。
技术细节
返回值: |
返回一个数组,包含所有在 array1 中同时也在所有其他数组中的单位。 返回一个交集数组,该数组包括了所有在被比较的数组(array1)中,同时也在任何其他参数数组(array2 或 array3 等等)中的键值。 |
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","yellow"); $a2=array("A"=>"red","b"=>"GREEN","yellow","black"); $a3=array("a"=>"green","b"=>"red","yellow","black"); $result=array_uintersect($a1,$a2,$a3,"myfunction"); print_r($result); ?>