arr‎ay_diff_assoc()‎

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

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

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

الوصف

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

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

المعاملات

array1

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

array2

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

…

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

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

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

أمثلة

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

في هذا المثال، سترى الزوج "a" => "green" موجودًا في كلتي المصفوفتين، ولذلك فهو غير موجود في خرج هذه الدالة. على النقيض من ذلك، الزوج ‎0 => "red"‎ موجود في خرج هذه الدالة لأن المفتاح المقابل للقيمة "red" بالمصفوفة الأولى مختلف.

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

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

Array
(
    [b] => brown
    [c] => blue
    [0] => red
)

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

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

<?php
$array1 = array(0, 1, 2);
$array2 = array("00", "01", "2");
$result = array_diff_assoc($array1, $array2);
print_r($result);
?>

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

Array
(
    [0] => 0
    [1] => 1
)

ملاحظات

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

تأكد من أنك تمرر المعاملات بالترتيب الصحيح بحيث تكون المصفوفة التي تقارن الدالة منها هي المعامل الأول.

انظر أيضًا

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

مصادر