تفاضل بر اساس کلید (array_diff_key)
تابع array_diff_key() فقط «کلیدها (Keys)» را مقایسه می کند. بنابراین مقدارها مهم نیستند. مثل حضور و غیاب که فقط اسم ها چک می شوند، نه نمره ها.
تعریف کوتاهِ تفاضل بر اساس کلید
این تابع کلیدهای چند آرایه را مقایسه می کند. سپس اعضای مخصوصِ آرایه اول را برمی گرداند؛ کلیدهایی که در بقیه نیستند.
نمونه 1: مقایسه کلیدهای دو آرایه انجمنی
<?php
$a1 = array("a" => "red", "b" => "green", "c" => "blue");
$a2 = array("a" => "red", "c" => "blue", "d" => "pink");
$result = array_diff_key($a1, $a2);
print_r($result);
?>
نمونه 2: آرایه های ایندکسی با کلیدهای عددی
<?php
$a1 = array("red", "green", "blue", "yellow");
$a2 = array("red", "green", "blue");
$result = array_diff_key($a1, $a2);
print_r($result);
?>
نمونه 3: مقایسه کلیدهای سه آرایه
<?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_diff_key($a1, $a2, $a3);
print_r($result);
?>
سینتکس و پارامترها
array_diff_key(array1, array2, array3, ...)
- array1: آرایه مرجع برای تفاضل. اجباری.
- array2: آرایه مقایسه. اجباری.
- array3,...: آرایه های مقایسه بیشتر. اختیاری.
نکته ها
نکته: فقط کلیدها بررسی می شوند؛ مقدارها نادیده گرفته می شوند.
نکته: خروجی شامل اعضای منحصر به فرد array1 است. نسخه: PHP 5.1+.
گام های تمرینی سریع
- دو آرایه بساز با کلیدهای مختلف.
- تابع
array_diff_keyرا روی آن ها اجرا کن. - خروجی را با
print_rبررسی و تحلیل کن.
جمع بندی سریع
- تفاضل بر اساس کلید، فقط کلیدها را می سنجد.
- نتیجه، اعضای خاصِ آرایه اول است.
- می تواند با چند آرایه مقایسه کند.
- برای مقایسه ساختارها خیلی کاربردی است.
تفاضل بر اساس کلید را به عنوان مرجع صفحه نشانه گذاری کن.
تفاضل آرایه (array_diff) برای مقایسه فقط مقدارها مفید است.
تفاضل انجمنی (array_diff_assoc) برای مقایسه کلید و مقدار همزمان است.