PHP array_uintersect() 函数
实例
比较两个数组的键值(使用用户自定义函数比较键值),并返回交集:
<?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"=>"blue","b"=>"black","e"=>"blue"); $result=array_uintersect($a1,$a2,"myfunction"); print_r($result); ?>
定义和用法
array_uintersect() 函数用于比较两个(或更多个)数组的键值 ,并返回交集。
注释:该函数使用用户自定义函数比较键值.
该函数比较两个(或更多个)数组的键值,并返回交集数组,该数组包括了所有在被比较的数组(array1)، همچنین در هر آرایهای که در هر یک از پارامترهای دیگر (array2 یا array3 وغیره) کلیدها.
语法
array_uintersect(array1,array2,array3...,myfunction)
参数 | 描述 |
---|---|
array1 | 必需。与其他数组进行比较的第一个数组。 |
array2 | 必需。与第一个数组进行比较的数组。 |
array3,... | 可选。与第一个数组进行比较的其他数组。 |
myfunction |
必需。字符串值,定义可调用的比较函数。 如果第一个参数小于等于或大于第二个参数,则比较函数必须返回小于等于或大于 0 的整数。 |
说明
使用用户自定义的回调函数 myfunction 来计算两个或多个数组的交集(即在 array1 中存在同时也在其它任何数组中存在的所有数组元素),并返回结果数组。
Kan kira kaiyake daidai na a cewa, kai kara kira kaiyake na a cewa, wani "a"=>1 da "b"=>1 zan kiyakusha na a cewa.
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); ?>