الفرق بين المراجعتين لصفحة: «PHP/array diff ukey»
Ibrahem-atef (نقاش | مساهمات) إنشاء صفحة جديدة |
ط نقل عبد اللطيف ايمش صفحة PHP/Function/array-diff-ukey إلى PHP/array diff ukey: إعادة هيكلة التوثيق |
||
(5 مراجعات متوسطة بواسطة نفس المستخدم غير معروضة) | |||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE:<code>array_diff_ukey()</code>}}</noinclude> | |||
(PHP 5 >= 5.1.0, PHP 7) | |||
تحسب الدالة <code>array_diff_ukey()</code> الفرق بين عدة مصفوفات باستخدام دالة مقارنة يوفرها المستخدم للمقارنة بين مفاتيح المصفوفات. | |||
تحسب الدالة array_diff_ukey() الفرق بين عدة مصفوفات باستخدام دالة مقارنة يوفرها المستخدم للمقارنة بين مفاتيح المصفوفات. | |||
== الوصف == | == الوصف == | ||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
array array_diff_ukey ( array $array1 , array $array2 [, array $... ], callable $key_compare_func ) | array array_diff_ukey ( array $array1 , array $array2 [, array $... ], callable $key_compare_func ) | ||
</syntaxhighlight>تقارن الدالة المصفوفات المُمَرََرة كالمعاملات وتعيد الفرق بينها. هذه الدالة تختلف عن دالة array_diff إذ إنَّها تأخذ بالحسبان المفاتيح الموجودة بالمصفوفات. | </syntaxhighlight>تقارن الدالة المصفوفات المُمَرََرة كالمعاملات وتعيد الفرق بينها. هذه الدالة تختلف عن دالة <code>[[PHP/array_diff|array_diff()]]</code> إذ إنَّها تأخذ بالحسبان المفاتيح الموجودة بالمصفوفات. | ||
تختلف هذه الدالة عن دالة array_diff_key في أنها تستخدم دالة معرفة من المستخدم لمقارنة المفاتيح، وليس دالةً داخليةً في PHP. | تختلف هذه الدالة عن دالة <code>[[PHP/array_diff_key|array_diff_key()]]</code> في أنها تستخدم دالة معرفة من المستخدم لمقارنة المفاتيح، وليس دالةً داخليةً في PHP. | ||
== المعاملات == | == المعاملات == | ||
=== <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: مثال بسيط عن الدالة <code>array_diff-ukey()</code><syntaxhighlight lang="php"> | ||
<?php | <?php | ||
function key_compare_func($key1, $key2) | function key_compare_func($key1, $key2) | ||
{ | { | ||
if ($key1 == $key2) | |||
return 0; | |||
else if ($key1 > $key2) | |||
return 1; | |||
else | |||
return -1; | |||
} | } | ||
$array1 = array('blue' | $array1 = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4); | ||
$array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan' => 8); | |||
$array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan' | |||
var_dump(array_diff_ukey($array1, $array2, 'key_compare_func')); | var_dump(array_diff_ukey($array1, $array2, 'key_compare_func')); | ||
?> | |||
</syntaxhighlight> | </syntaxhighlight> | ||
نتيجة المثال السابق:<syntaxhighlight lang=" | نتيجة المثال السابق:<syntaxhighlight lang="text"> | ||
array(2) { | array(2) { | ||
["red"]=> | |||
int(2) | |||
["purple"]=> | |||
int(4) | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
سطر 81: | سطر 64: | ||
== ملاحظات == | == ملاحظات == | ||
تتحقق هذه الدالة من بعد واحد فقط للمصفوفات متعددة الأبعاد. بالطبع يمكنك التحقق من أبعاد أعمق باستخدام array_diff_ukey($array1[0], $array2[0], 'callback_func') على سبيل المثال. | تتحقق هذه الدالة من بعد واحد فقط للمصفوفات متعددة الأبعاد. بالطبع يمكنك التحقق من أبعاد أعمق باستخدام <code>array_diff_ukey($array1[0], $array2[0], 'callback_func')</code> على سبيل المثال. | ||
== انظر | == انظر أيضًا == | ||
* الدالة array_udiff: تحسب الاختلاف بين المصفوفات باستخدام دالة يحددها المستخدم. | * الدالة <code>[[PHP/array_udiff|array_udiff()]]</code>: تحسب الاختلاف بين المصفوفات باستخدام دالة يحددها المستخدم. | ||
* الدالة array_diff(): تحسب الفرق بين المصفوفات. | * الدالة <code>[[PHP/array_diff|array_diff()]]</code>: تحسب الفرق بين المصفوفات. | ||
* الدالة array_diff_assoc(): تحسب الفرق بين المصفوفات مع استخدام تحقق إضافي من الفهارس. | * الدالة <code>[[PHP/array_diff_assoc|array_diff_assoc()]]</code>: تحسب الفرق بين المصفوفات مع استخدام تحقق إضافي من الفهارس. | ||
* الدالة array_diff_uassoc(): تحسب الفرق بين المصفوفات مع استخدام تحقق إضافي من الفهارس عن طريق تنفيذ دالة يحددها المستخدم. | * الدالة <code>[[PHP/array_diff_uassoc|array_diff_uassoc()]]</code>: تحسب الفرق بين المصفوفات مع استخدام تحقق إضافي من الفهارس عن طريق تنفيذ دالة يحددها المستخدم. | ||
* الدالة array_udiff_assoc(): تحسب الفرق بين المصفوفات مع استخدام تحقق إضافي من الفهارس وتقارن البيانات باستخدام دالة يحددها المستخدم. | * الدالة <code>[[PHP/array_udiff_assoc|array_udiff_assoc()]]</code>: تحسب الفرق بين المصفوفات مع استخدام تحقق إضافي من الفهارس وتقارن البيانات باستخدام دالة يحددها المستخدم. | ||
* الدالة array_udiff_uassoc(): تحسب الفرق بين المصفوفات مع استخدام تحقق إضافي من الفهارس وتقارن البيانات والفهارس باستخدام دالة يحددها المستخدم. | * الدالة <code>[[PHP/array_udiff_uassoc|array_udiff_uassoc()]]</code>: تحسب الفرق بين المصفوفات مع استخدام تحقق إضافي من الفهارس وتقارن البيانات والفهارس باستخدام دالة يحددها المستخدم. | ||
* الدالة array_intersect(): تحسب التقاطع بين المصفوفات. | * الدالة <code>[[PHP/array_intersect|array_intersect()]]</code>: تحسب التقاطع بين المصفوفات. | ||
* الدالة array_intersect_assoc(): تحسب التقاطع بين المصفوفات مع استخدام تخقق إضافي بمقارنة الفهارس. | * الدالة <code>[[PHP/array_intersect_assoc|array_intersect_assoc()]]</code>: تحسب التقاطع بين المصفوفات مع استخدام تخقق إضافي بمقارنة الفهارس. | ||
== مصادر == | == مصادر == | ||
* [http://php.net/manual/en/function.array-diff-ukey.php صفحة array_diff_ukey في توثيق PHP الرسمي.] | * [http://php.net/manual/en/function.array-diff-ukey.php صفحة array_diff_ukey في توثيق PHP الرسمي.] | ||
[[تصنيف:PHP]] | |||
[[تصنيف:PHP Function]] | |||
[[تصنيف:PHP Array]] |
المراجعة الحالية بتاريخ 03:49، 4 أبريل 2018
(PHP 5 >= 5.1.0, PHP 7)
تحسب الدالة array_diff_ukey()
الفرق بين عدة مصفوفات باستخدام دالة مقارنة يوفرها المستخدم للمقارنة بين مفاتيح المصفوفات.
الوصف
array array_diff_ukey ( array $array1 , array $array2 [, array $... ], callable $key_compare_func )
تقارن الدالة المصفوفات المُمَرََرة كالمعاملات وتعيد الفرق بينها. هذه الدالة تختلف عن دالة array_diff()
إذ إنَّها تأخذ بالحسبان المفاتيح الموجودة بالمصفوفات.
تختلف هذه الدالة عن دالة array_diff_key()
في أنها تستخدم دالة معرفة من المستخدم لمقارنة المفاتيح، وليس دالةً داخليةً في PHP.
المعاملات
array1
المصفوفة التي ستقارن الدالة منها.
array2
المصفوفة التي ستقارن الدالة بها.
…
مزيد من المصفوفات لتقارن الدالة بها.
key_compare_func
يجب أن تعيد دالة المقارنة عددًا صحيحًا يكون أصغر أو يساوي أو أكبر من الصفر إذا كان المعامل الأول أصغر أو مساويًا أو أكبر من المعامل الثاني على التوالي وبالترتيب. لاحظ أنه قبل إصدار 7.0.0 من لغة PHP توجب على هذا العدد الصحيح أن يكون في المجال من -2147483648 إلي 2147483648.
int callback ( mixed $a, mixed $b )
القيم المعادة
تعيد الدالة مصفوفة جديدة تحتوي على كل العناصر الموجودة في المصفوفة الأولى والتي ليست موجودةً في أيٍ من المصفوفات الأخرى.
أمثلة
المثال 1: مثال بسيط عن الدالة array_diff-ukey()
<?php
function key_compare_func($key1, $key2)
{
if ($key1 == $key2)
return 0;
else if ($key1 > $key2)
return 1;
else
return -1;
}
$array1 = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4);
$array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan' => 8);
var_dump(array_diff_ukey($array1, $array2, 'key_compare_func'));
?>
نتيجة المثال السابق:
array(2) {
["red"]=>
int(2)
["purple"]=>
int(4)
}
تتحقق الدالة من تساوي فهرسين بالمصفوفات باستخدام الدالة المعرفََة من قبل المستخدم.
ملاحظات
تتحقق هذه الدالة من بعد واحد فقط للمصفوفات متعددة الأبعاد. بالطبع يمكنك التحقق من أبعاد أعمق باستخدام array_diff_ukey($array1[0], $array2[0], 'callback_func')
على سبيل المثال.
انظر أيضًا
- الدالة
array_udiff()
: تحسب الاختلاف بين المصفوفات باستخدام دالة يحددها المستخدم. - الدالة
array_diff()
: تحسب الفرق بين المصفوفات. - الدالة
array_diff_assoc()
: تحسب الفرق بين المصفوفات مع استخدام تحقق إضافي من الفهارس. - الدالة
array_diff_uassoc()
: تحسب الفرق بين المصفوفات مع استخدام تحقق إضافي من الفهارس عن طريق تنفيذ دالة يحددها المستخدم. - الدالة
array_udiff_assoc()
: تحسب الفرق بين المصفوفات مع استخدام تحقق إضافي من الفهارس وتقارن البيانات باستخدام دالة يحددها المستخدم. - الدالة
array_udiff_uassoc()
: تحسب الفرق بين المصفوفات مع استخدام تحقق إضافي من الفهارس وتقارن البيانات والفهارس باستخدام دالة يحددها المستخدم. - الدالة
array_intersect()
: تحسب التقاطع بين المصفوفات. - الدالة
array_intersect_assoc()
: تحسب التقاطع بين المصفوفات مع استخدام تخقق إضافي بمقارنة الفهارس.