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