اشتراک بر اساس کلید (array_intersect_key)
در «اشتراک بر اساس کلید»، فقط کلیدها (Keys) سنجیده می شوند. تابع array_intersect_key() ورود ی ها را بررسی می کند و عضوهایی را نگه می دارد که کلیدشان در همه آرایه ها وجود دارد. این مثل حضور نام دانش آموز در لیست های مختلف است.
تعریف ساده و رفتار تابع
array_intersect_key(array1, array2, ...) کلیدهای array1 را با آرایه های بعدی مقایسه می کند. اگر کلیدی در همه باشد، همان عضو از array1 برمی گردد.
پارامترها
- array1: آرایه پایه برای مقایسه کلیدها.
- array2,...: آرایه های مرجع برای سنجش حضور کلید.
مثال پایه: دو آرایه انجمنی
فقط کلیدهای مشترک بین دو آرایه نگه داشته می شوند.
<?php
$a1 = array("a" => "red", "b" => "green", "c" => "blue");
$a2 = array("a" => "red", "c" => "blue", "d" => "pink");
$result = array_intersect_key($a1, $a2);
print_r($result);
?>
مثال: آرایه های اندیسی
در آرایه های اندیسی، مقایسه بر اساس شماره خانه ها انجام می شود.
<?php
$a1 = array("red", "green", "blue", "yellow");
$a2 = array("red", "green", "blue");
$result = array_intersect_key($a1, $a2);
print_r($result);
?>
مثال: سه آرایه انجمنی
اینجا، فقط کلیدهایی باقی می مانند که در هر سه آرایه هستند.
<?php
$a1 = array("a" => "red", "b" => "green", "c" => "blue");
$a2 = array("c" => "yellow", "d" => "black", "e" => "brown");
$a3 = array("f" => "green", "c" => "purple", "g" => "red");
$result = array_intersect_key($a1, $a2, $a3);
print_r($result);
?>
گام های عملی سریع
- آرایه پایه را تعیین کن. نامش
array1باشد. - آرایه های مرجع را آماده کن. کلیدها منظم باشند.
array_intersect_key()را اجرا کن. نتیجه را بررسی کن.- اگر مقدار هم مهم است، از array_intersect_assoc استفاده کن.
نکات و لینک های مرتبط
- نکته: فقط کلیدها سنجیده می شوند؛ مقادیر اهمیتی ندارند.
- برای اشتراک بر اساس مقدار، به array_intersect برو.
- اشتراک بر اساس کلید را برای مرور سریع ذخیره کن.
جمع بندی سریع
- فقط کلید مشترک مهم است.
- اعضا از
array1بازگردانده می شوند. - آرایه های اندیسی هم پشتیبانی می شوند.
- برای کلید و مقدار،
array_intersect_assocبهتر است.