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)中,同时也在任何其他参数数组(array2array3 等等)中的键值。

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)中,同时也在任何其他参数数组(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","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);
?>

运行实例