English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

دليل دروس PHP الأساسية

دليل دروس PHP المتقدمة

PHP & MySQL

دليل مرجع PHP

استخدام دالة array_diff_uassoc() في PHP وامثلة

دليل الوظائف المصفوفة PHP

التعريف والاستخدام

array_diff_uassoc()دالة مقارنة مقارنة بين مفاتيح قيم مجموعتين (أو أكثر) من القوائم، وتعيد قائمة تحتوي على العناصر من array1 التي لا توجد في أي قائمة أخرى تحتوي على نفس القيم.

هذه الدالة تختلف عنarray_diff()،لأن array_diff() يتحقق من القيم، بينما يتحقق هذا الدالة من المفاتيح والقيم في القائمة الأخرى.

هذه الدالة تشبهarray_diff_assoc() يختلف عن، لأن array_diff_assoc() يستخدم خوارزمية داخليه للتحقق من المفاتيح والقيم، بينما يستخدم هذا الدالة دالة معينه محدده من قبل المستخدم للتحقق من المفاتيح والقيم.

النحو

array_diff_uassoc ( $array1, $array2 [, $array3..., callback $key_compare_func] );

المعلمات

الترتيبالمعلمات وشرحها
1

array1(مطلوب)

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

2

array2(مطلوب)

هذه هي المصفوفة التي سيتم مقارنتها مع الأولى

3

array3(اختياري)

المصفوفة التي يتم مقارنتها مع الأولى

4

key_compare_func(مطلوب)

عندما يكون أول معامل أصغر، يساوي أو أكبر من المعامل الثاني، يجب أن تعود هذه الدالة عددًا صحيحًا أقل من، يساوي أو أكبر من 0.

النتيجة

تعود هذه الوظيفة مصفوفة تحتوي على جميع المدخلات من array1 وليس تحتوي أي مصفوفة أخرى.

إصدار PHP

تم إدخال هذه الوظيفة لأول مرة في إصدار PHP 5.0.0.

مثال على الإنترنت

تجربة المثال التالي. هنا، إذا كان مفتاح $input1 يساوي أي مفتاح آخر في مصفوفة الإدخال، فإن دالة مقارنة المفاتيح تعود 0; إذا كان أكبر، فإنها تعود 1; إذا كان أصغر، فإنها تعود -1.

عندما يتم مقارنة المفاتيح باستخدام الدالة المحددة، فإنهما بالفعل يحتويان على المفتاح "a" في كلا المصفوفتين، لذا لن يظهر في الإخراج. المفتاح التالي "b" و "c" ليسا في المصفوفة الثانية، لذا ستدخل في الإخراج. بالإضافة إلى ذلك، فإن 0 => "red" في الإخراج لأن المفتاح في المعامل الثاني "red" هو 1:

<?php
   function key_compare_func($a, $b) {
      if ($a === $b) {
         return 0;
      }
      return ($a > $b) ? 1 : -1;
   }
   $input1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
   $input2 = array("a" => "green", "yellow", "red");
   $result = array_diff_uassoc($input1, $input2, "key_compare_func");
   print_r($result);
?>
اختبار لرؤية‹/›

نتائج الإخراج:

مصفوفة
(
    [b] => brown
    [c] => blue
    [0] => red
)

مثال على الإنترنت

تجربة المثال التالي. هذه المرة "red" لن تكون في الإخراج لأن الآن كلا المفاتيح تساوي 0.

<?php
   function key_compare_func($a, $b) {
      if ($a === $b) {
         return 0;
      }
      return ($a > $b) ? 1 : -1;
   }
   $input1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
   $input2 = array("a" => "green", "c" => "yellow", "red");
   $result = array_diff_uassoc($input1, $input2, "key_compare_func");
   print_r($result);
?>
اختبار لرؤية‹/›

نتائج الإخراج:

مصفوفة
(
    [b] => brown
    [c] => blue
)

دليل الوظائف المصفوفة PHP