array_diff()‎

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

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

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

الوصف

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

تقارن الدالة array_diff()‎ المصفوفة array1 بمصفوفة أخرى أو أكثر و تعيد القيم الموجودة فيها و التي ليست موجودة في المصفوفات الأخرى.

المعاملات

array1

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

array2

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

…

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

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

تعيد الدالة مصفوفةً جديدةً تحتوي على كل العناصر الموجودة في المصفوفة الأولى والتي ليست موجودةً في أيٍ من المصفوفات الأخرى.

أمثلة

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

<?php
$array1 = array("a" => "green", "red", "blue", "red");
$array2 = array("b" => "green", "yellow", "red");
$result = array_diff($array1, $array2);

print_r($result);
?>

العناصر المكررة بالمصفوفة ‎$array1 تعامل كلها بنفس الطريقة.

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

Array
(
    [1] => blue
)

ملاحظات

يُعتبر عنصران من المصفوفات متساويان إذا و فقط إذا كان ‎(string) $elem1 === (string) $elem2. بكلمات أخرى، إذا كان التمثيل النصي لهما متماثل تمامًا.

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

انظر أيضًا

  • الدالة array_diff_assoc()‎: تحسب الاختلاف بين المصفوفات مع استخدام تحقق إضافي بمقارنة الفهارس.
  • الدالة array_intersect()‎: تحسب التقاطع (intersection) بين المصفوفات.
  • الدالة array_intersect_assoc()‎: تحسب التقاطع بين المصفوفات مع استخدام تحقق إضافي بمقارنة الفهارس.

مصادر