array_diff_key()‎

من موسوعة حسوب
< PHP

(PHP 5 >= 5.1.0, PHP 7)

تحسب الدالة array_diff_key()‎ الفرق بين عدة مصفوفات باستخدام المفاتيح للمقارنة.

الوصف

array array_diff_key ( array $array1 , array $array2 [, array $... ] )

تقارن الدالة مفاتيح المصفوفات المُمَرََرة كمعاملات وتعيد الفرق بينها. هذه الدالة تشبه دالة array_diff()‎ إلا أنها تقارن باستخدام المفاتيح وليس القيم.

المعاملات

array1

المصفوفة التي ستقارن الدالة منها.

array2

المصفوفة التي ستقارن الدالة بها.

…

مزيد من المصفوفات لتقارن الدالة بها.

القيم المعادة

تعيد الدالة مصفوفةً جديدةً من القيم الموجودة بالمصفوفة الأولى التي تكون مفاتيحها غير موجودة بأي من المصفوفات الأخرى.

أمثلة

المثال 1: مثال بسيط عن الدالة array_diff_key()‎

يعدّ زوجان من المفاتيح والقيم متماثلان فقط إذا كان ‎(string) $key1 === (string) $key2. بكلمات أخرى، تستخدم الدالة المقارنة الصارمة لمقارنة القيم ولذلك يجب أن يكون التمثيل النصي للقيم متماثلًا تمامًا.

<?php
$array1 = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4);
$array2 = array('green' => 5, 'yellow' => 7, 'cyan' => 8);

var_dump(array_diff_key($array1, $array2));
?>

نتيجة المثال السابق:

array(3) {
  ["blue"]=>
  int(1)
  ["red"]=>
  int(2)
  ["purple"]=>
  int(4)
}

المثال 2: مثال بسيط آخر عن الدالة array_diff_key()‎

<?php
$array1 = array('blue' => 1, 'red'  => 2, 'green' => 3, 'purple' => 4);
$array2 = array('green' => 5, 'yellow' => 7, 'cyan' => 8);
$array3 = array('blue' => 6, 'yellow' => 7, 'mauve' => 8);

var_dump(array_diff_key($array1, $array2, $array3));
?>

نتيجة المثال السابق:

array(2) {
  ["red"]=>
  int(2)
  ["purple"]=>
  int(4)
}

ملاحظات

تتحقق هذه الدالة من بعد واحد فقط للمصفوفات متعددة الأبعاد. بالطبع يمكنك التحقق من أبعاد أعمق باستخدام array_diff_key($array1[0], $array2[0])‎ على سبيل المثال.

انظر أيضًا

  • الدالة array_udiff()‎: تحسب الاختلاف بين المصفوفات باستخدام دالة يحددها المستخدم.
  • الدالة array_diff()‎: تحسب الفرق بين المصفوفات.
  • الدالة array_diff_assoc()‎: تحسب الفرق بين المصفوفات مع استخدام تحقق إضافي من الفهارس.
  • الدالة array_diff_uassoc()‎: تحسب الفرق بين المصفوفات مع استخدام تحقق إضافي من الفهارس عن طريق تنفيذ دالة يحددها المستخدم.
  • الدالة array_udiff_assoc()‎: تحسب الفرق بين المصفوفات مع استخدام تحقق إضافي من الفهارس وتقارن البيانات باستخدام دالة يحددها المستخدم.
  • الدالة array_udiff_uassoc()‎: تحسب الفرق بين المصفوفات مع استخدام تحقق إضافي من الفهارس وتقارن البيانات والفهارس باستخدام دالة يحددها المستخدم.
  • الدالة array_intersect()‎: تحسب التقاطع بين المصفوفات.
  • الدالة array_intersect_assoc()‎: تحسب التقاطع بين المصفوفات مع استخدام تحقق إضافي للفهارس.
  • الدالة array_uintersect_assoc()‎: تحسب التقاطع بين المصفوفات مع استخدام تحقق إضافي للفهارس، وتستخدم دالة يحددها المستخدم لتقارن بين البيانات.
  • الدالة array_intersect_uassoc()‎: تحسب التقاطع بين المصفوفات مع استخدام تحقق إضافي من الفهارس، كما أنها تقارن الفهارس باستخدام دالة يحددها المستخدم.
  • الدالة array_intersect_key()‎: تحسب التقاطع بين المصفوفات باستخدام المفاتيح في المقارنة.
  • الدالة array_intersect_ukey()‎: تحسب التقاطع بين المصفوفات باستخدام دالة يحددها المستخدم لمقارنة المفاتيح.

مصادر