توابع array_uintersect() PHP
مثال
مقایسه کلیدهای دو آرایه (با استفاده از تابع کاربر تعریف شده برای مقایسه کلیدها) و بازگرداندن تقاطع:
<?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 که در آن همه عناصر موجود در هر آرایهای دیگر نیز وجود دارند)، و آرایه نتیجه را بازمیگرداند.
تنها مقایسه کلیدها انجام میشود، نام کلید مقایسه نمیشود، به عنوان مثال "a"=>1 و "b"=>1 این دو عنصر به عنوان برابر در نظر گرفته میشوند.
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); ?>