الفرق بين المراجعتين ل"PHP/array diff uassoc"

من موسوعة حسوب
< PHP
اذهب إلى التنقل اذهب إلى البحث
ط (إضافة عنوان الصفحة والتصنيفات)
سطر 2: سطر 2:
 
(PHP 5, PHP 7)
 
(PHP 5, PHP 7)
  
تحسب الدالة array_diff_uassoc()‎ الفرق بين عدة مصفوفات باستخدام دالة مقارنة يوفرها المستخدم.
+
تحسب الدالة <code>array_diff_uassoc()‎</code> الفرق بين عدة مصفوفات باستخدام دالة مقارنة يوفرها المستخدم.
  
 
== الوصف ==
 
== الوصف ==
 
<syntaxhighlight lang="php">
 
<syntaxhighlight lang="php">
 
array array_diff_uassoc ( array $array1 , array $array2 [, array $... ], callable $key_compare_func )
 
array array_diff_uassoc ( array $array1 , array $array2 [, array $... ], callable $key_compare_func )
</syntaxhighlight>تقارن الدالة المصفوفات المُمَرََرة بالمعاملات وتعيد الفرق بينها. هذه الدالة تختلف عن دالة array_diff حيث أنها تأخذ بالاعتبار المفاتيح الموجودة بالمصفوفات.
+
</syntaxhighlight>تقارن الدالة المصفوفات المُمَرََرة بالمعاملات وتعيد الفرق بينها. هذه الدالة تختلف عن دالة <code>[[PHP/Function/array-diff|array_diff()‎]]</code> حيث أنها تأخذ بالحسبان المفاتيح الموجودة بالمصفوفات.
  
تختلف هذه الدالة عن دالة array_diff_assoc في أنها تستخدم دالة معرفة من المستخدم لمقارنة الفهارس، وليس دالة داخلية في PHP.
+
تختلف هذه الدالة عن دالة <code>[[PHP/Function/array-diff-assoc|array_diff_assoc()‎]]</code> في أنها تستخدم دالة معرفة من المستخدم لمقارنة الفهارس، وليس دالة داخلية في PHP.
  
 
== المعاملات ==
 
== المعاملات ==
array1
 
  
 +
=== <code>array1</code> ===
 
المصفوفة التي ستقارن الدالة منها.
 
المصفوفة التي ستقارن الدالة منها.
  
array2
+
=== <code>array2</code> ===
 
 
 
المصفوفة التي ستقارن الدالة بها.
 
المصفوفة التي ستقارن الدالة بها.
  
+
=== <code></code> ===
 
 
 
مزيد من المصفوفات لتقارن الدالة بها.
 
مزيد من المصفوفات لتقارن الدالة بها.
  
key_compare_func
+
=== <code>key_compare_func</code> ===
 
 
 
يجب أن تعيد دالة المقارنة عددًا صحيحًا يكون أصغر أو يساوي أو أكبر من الصفر إذا كان المعامل الأول أصغر أو مساوياً أو أكبر من المعامل الثاني على التوالي وبالترتيب. لاحظ أنه قبل إصدار 7.0.0 من لغة PHP توجب على هذا العدد الصحيح أن يكون في المجال من ‎-2147483648  إلى 2147483648.<syntaxhighlight lang="php">
 
يجب أن تعيد دالة المقارنة عددًا صحيحًا يكون أصغر أو يساوي أو أكبر من الصفر إذا كان المعامل الأول أصغر أو مساوياً أو أكبر من المعامل الثاني على التوالي وبالترتيب. لاحظ أنه قبل إصدار 7.0.0 من لغة PHP توجب على هذا العدد الصحيح أن يكون في المجال من ‎-2147483648  إلى 2147483648.<syntaxhighlight lang="php">
 
int callback ( mixed $a, mixed $b )
 
int callback ( mixed $a, mixed $b )
سطر 34: سطر 31:
  
 
== أمثلة ==
 
== أمثلة ==
المثال 1: مثال بسيط عن استخدام الدالة array_diff_uassoc()‎
+
المثال 1: مثال بسيط عن استخدام الدالة <code>array_diff_uassoc()‎</code>
 +
 
 +
في هذا المثال، سترى الزوج <code>"a" => "green"</code> موجودًا في كلتي المصفوفتين، ولذلك فهو غير موجود في خرج هذه الدالة. على النقيض من ذلك، الزوج <code>0‎ => "red"</code>‎ موجود في خرج هذه الدالة لأن المفتاح المقابل للقيمة <code>"red"</code> بالمصفوفة الأولى مختلف.<syntaxhighlight lang="php">
  
في هذا المثال، سترى الزوج "a" => "green" موجودًا في كلتي المصفوفتين، ولذلك فهو غير موجود في خرج هذه الدالة. على النقيض من ذلك، الزوج 0‎ => "red"‎ موجود في خرج هذه الدالة لأن المفتاح المقابل للقيمة "red" بالمصفوفة الأولى مختلف.<syntaxhighlight lang="php">
 
 
<?php
 
<?php
 
 
function key_compare_func($a, $b)
 
function key_compare_func($a, $b)
 
 
{
 
{
 
+
    if ($a === $b) {
   if ($a === $b) {
+
        return 0;
 
+
    }
       return 0;
+
    return ($a > $b)? 1:-1;
 
 
   }
 
 
 
   return ($a > $b)? 1:-1;
 
 
 
 
}
 
}
  
 
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
 
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
 
 
$array2 = array("a" => "green", "yellow", "red");
 
$array2 = array("a" => "green", "yellow", "red");
 
 
$result = array_diff_uassoc($array1, $array2, "key_compare_func");
 
$result = array_diff_uassoc($array1, $array2, "key_compare_func");
 
 
print_r($result);
 
print_r($result);
 +
?>
  
?>
 
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 
نتيجة المثال السابق:<syntaxhighlight lang="php">
 
نتيجة المثال السابق:<syntaxhighlight lang="php">
 
Array
 
Array
 
 
(
 
(
 +
    [b] => brown
 +
    [c] => blue
 +
    [0] => red
 +
)
  
   [b] => brown
 
 
   [c] => blue
 
 
   [0] => red
 
 
)
 
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 
تتحقق الدالة من تساوي فهرسين بالمصفوفات باستخدام الدالة المعرفََة من قبل المستخدم.
 
تتحقق الدالة من تساوي فهرسين بالمصفوفات باستخدام الدالة المعرفََة من قبل المستخدم.
  
== انظر أيضاً ==
+
== ملاحظات ==
* الدالة array_udiff: تحسب الاختلاف بين المصفوفات باستخدام دالة يحددها المستخدم.
+
تتحقق هذه الدالة من بعد واحد فقط للمصفوفات متعددة الأبعاد. بالطبع يمكنك التحقق من أبعاد أعمق باستخدام <code>array_diff_uassoc($array1[0], $array2[0], "key_compare_func")</code>على سبيل المثال.
* الدالة 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_diff_uassoc($array1[0], $array2[0], "key_compare_func")‎ على سبيل المثال.
+
* الدالة <code>[[PHP/Function/array-udiff|array_udiff()‎]]</code>: تحسب الاختلاف بين المصفوفات باستخدام دالة يحددها المستخدم.
 +
* الدالة <code>[[PHP/Function/array-diff|array_diff()‎]]</code>: تحسب الفرق بين المصفوفات.
 +
* الدالة <code>[[PHP/Function/array-diff-assoc|array_diff_assoc()‎]]</code>: تحسب الفرق بين المصفوفات مع استخدام تحقق إضافي من الفهارس.
 +
* الدالة <code>[[PHP/Function/array-udiff-assoc|array_udiff_assoc()‎]]</code>: تحسب الفرق بين المصفوفات مع استخدام تحقق إضافي من الفهارس وتقارن البيانات باستخدام دالة يحددها المستخدم.
 +
* الدالة <code>[[PHP/Function/array-udiff-uassoc|array_udiff_uassoc()‎]]</code>: تحسب الفرق بين المصفوفات مع استخدام تحقق إضافي من الفهارس وتقارن البيانات والفهارس باستخدام دالة يحددها المستخدم.
 +
* الدالة <code>[[PHP/Function/array-intersect|array_intersect()‎]]</code>: تحسب التقاطع بين المصفوفات.
 +
* الدالة <code>[[PHP/Function/array-intersect-assoc|array_intersect_assoc()‎]]</code>: تحسب التقاطع بين المصفوفات مع استخدام تحقق إضافي للفهارس.
 +
* الدالة <code>[[PHP/Function/array-uintersect-assoc|array_uintersect_assoc()‎]]</code>: تحسب التقاطع بين المصفوفات مع استخدام تحقق إضافي للفهارس، وتستخدم دالة يحددها المستخدم لتقارن بين البيانات.
 +
* الدالة <code>[[PHP/Function/array-intersect-uassoc|array_interest_uassoc()‎]]</code>: تحسب التقاطع بين المصفوفات مع استخدام تحقق إضافي من الفهارس، كما أنها تقارن الفهارس باستخدام دالة يحددها المستخدم.
  
 
== مصادر ==
 
== مصادر ==

مراجعة 04:42، 14 مارس 2018

(PHP 5, PHP 7)

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

الوصف

array array_diff_uassoc ( array $array1 , array $array2 [, array $... ], callable $key_compare_func )

تقارن الدالة المصفوفات المُمَرََرة بالمعاملات وتعيد الفرق بينها. هذه الدالة تختلف عن دالة array_diff()‎ حيث أنها تأخذ بالحسبان المفاتيح الموجودة بالمصفوفات.

تختلف هذه الدالة عن دالة array_diff_assoc()‎ في أنها تستخدم دالة معرفة من المستخدم لمقارنة الفهارس، وليس دالة داخلية في PHP.

المعاملات

array1

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

array2

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

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

key_compare_func

يجب أن تعيد دالة المقارنة عددًا صحيحًا يكون أصغر أو يساوي أو أكبر من الصفر إذا كان المعامل الأول أصغر أو مساوياً أو أكبر من المعامل الثاني على التوالي وبالترتيب. لاحظ أنه قبل إصدار 7.0.0 من لغة PHP توجب على هذا العدد الصحيح أن يكون في المجال من ‎-2147483648  إلى 2147483648.

int callback ( mixed $a, mixed $b )

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

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

أمثلة

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

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

<?php
function key_compare_func($a, $b)
{
    if ($a === $b) {
        return 0;
    }
    return ($a > $b)? 1:-1;
}

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

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

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

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

ملاحظات

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

انظر أيضًا

  • الدالة array_udiff()‎: تحسب الاختلاف بين المصفوفات باستخدام دالة يحددها المستخدم.
  • الدالة array_diff()‎: تحسب الفرق بين المصفوفات.
  • الدالة array_diff_assoc()‎: تحسب الفرق بين المصفوفات مع استخدام تحقق إضافي من الفهارس.
  • الدالة array_udiff_assoc()‎: تحسب الفرق بين المصفوفات مع استخدام تحقق إضافي من الفهارس وتقارن البيانات باستخدام دالة يحددها المستخدم.
  • الدالة array_udiff_uassoc()‎: تحسب الفرق بين المصفوفات مع استخدام تحقق إضافي من الفهارس وتقارن البيانات والفهارس باستخدام دالة يحددها المستخدم.
  • الدالة array_intersect()‎: تحسب التقاطع بين المصفوفات.
  • الدالة array_intersect_assoc()‎: تحسب التقاطع بين المصفوفات مع استخدام تحقق إضافي للفهارس.
  • الدالة array_uintersect_assoc()‎: تحسب التقاطع بين المصفوفات مع استخدام تحقق إضافي للفهارس، وتستخدم دالة يحددها المستخدم لتقارن بين البيانات.
  • الدالة array_interest_uassoc()‎: تحسب التقاطع بين المصفوفات مع استخدام تحقق إضافي من الفهارس، كما أنها تقارن الفهارس باستخدام دالة يحددها المستخدم.

مصادر