PHP/array diff key

من موسوعة حسوب
< PHP
مراجعة 18:08، 13 مارس 2018 بواسطة Ibrahem-atef (نقاش | مساهمات) (إنشاء صفحة جديدة)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

الدالة array_diff_key()‎

(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_udiff: تحسب الاختلاف بين المصفوفات باستخدام دالة يحددها المستخدم.
  • الدالة array_diff()‎: تحسب الفرق بين المصفوفات.
  • الدالة array_diff_assoc()‎: تحسب الفرق بين المصفوفات مع استخدام تحقق إضافي من الفهارس.
  • الدالة array_diff_uassoc()‎: تحسب الفرق بين المصفوفات مع استخدام تحقق إضافي من الفهارس عن طريق تنفيذ دالة يحددها المستخدم.
  • الدالة array_udiff_assoc()‎: تحسب الفرق بين المصفوفات مع استخدام تحقق إضافي من الفهارس وتقارن البيانات باستخدام دالة يحددها المستخدم.
  • الدالة array_udiff_uassoc()‎: تحسب الفرق بين المصفوفات مع استخدام تحقق إضافي من الفهارس وتقارن البيانات والفهارس باستخدام دالة يحددها المستخدم.
  • الدالة array_intersect()‎: تحسب التقاطع بين المصفوفات.
  • الدالة array_intersect_assoc()‎: تحسب التقاطع بين المصفوفات مع استخدام تحقق إضافي للفهارس.
  • الدالة array_uintersect_assoc()‎: تحسب التقاطع بين المصفوفات مع استخدام تحقق إضافي للفهارس، وتستخدم دالة يحددها المستخدم لتقارن بين البيانات.
  • الدالة array_interest_uassoc()‎: تحسب التقاطع بين المصفوفات مع استخدام تحقق إضافي من الفهارس، كما أنها تقارن الفهارس باستخدام دالة يحددها المستخدم.
  • الدالة array_intersect_key()‎: تحسب التقاطع بين المصفوفات باستخدام المفاتيح في المقارنة.
  • الدالة array_intersect_ukey()‎: تحسب التقاطع بين المصفوفات باستخدام دالة يحددها المستخدم لمقارنة المفاتيح.

ملاحظات

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

مصادر