الفرق بين المراجعتين ل"PHP/array diff assoc"
ط |
ط (نقل عبد اللطيف ايمش صفحة PHP/Function/array-diff-assoc إلى PHP/array diff assoc: إعادة هيكلة التوثيق) |
||
(4 مراجعات متوسطة بواسطة نفس المستخدم غير معروضة) | |||
سطر 2: | سطر 2: | ||
(PHP 4 >= 4.3.0, PHP 5, PHP 7) | (PHP 4 >= 4.3.0, PHP 5, PHP 7) | ||
− | تحسب الدالة array_diff_assoc() الفرق بين عدة مصفوفات مع أخذ مفاتيح المصفوفات بالحسبان. | + | تحسب الدالة <code>array_diff_assoc()</code> الفرق بين عدة مصفوفات مع أخذ مفاتيح المصفوفات بالحسبان. |
== الوصف == | == الوصف == | ||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
array array_diff_assoc ( array $array1 , array $array2 [, array $... ] ) | array array_diff_assoc ( array $array1 , array $array2 [, array $... ] ) | ||
− | </syntaxhighlight>تقارن الدالة array_diff_assoc() المصفوفات المُمَرََرة كمعاملات وتعيد الفرق بينها. هذه الدالة تختلف عن دالة array_diff إذ إنَّها تأخذ بالحسبان المفاتيح والقيم المرتبطة بها، وليس المفاتيح فحسب. | + | </syntaxhighlight>تقارن الدالة <code>array_diff_assoc()</code> المصفوفات المُمَرََرة كمعاملات وتعيد الفرق بينها. هذه الدالة تختلف عن دالة <code>[[PHP/array_diff|array_diff()]]</code> إذ إنَّها تأخذ بالحسبان المفاتيح والقيم المرتبطة بها، وليس المفاتيح فحسب. |
== المعاملات == | == المعاملات == | ||
− | |||
+ | === <code>array1</code> === | ||
المصفوفة التي ستقارن الدالة منها. | المصفوفة التي ستقارن الدالة منها. | ||
− | array2 | + | === <code>array2</code> === |
− | |||
المصفوفة التي ستقارن الدالة بها. | المصفوفة التي ستقارن الدالة بها. | ||
− | … | + | === <code>…</code> === |
− | |||
مزيد من المصفوفات لتقارن الدالة بها. | مزيد من المصفوفات لتقارن الدالة بها. | ||
سطر 26: | سطر 24: | ||
== أمثلة == | == أمثلة == | ||
− | المثال 1: مثال بسيط عن الدالة array_diff_assoc() | + | المثال 1: مثال بسيط عن الدالة <code>array_diff_assoc()</code> |
+ | |||
+ | في هذا المثال، سترى الزوج <code>"a" => "green"</code> موجودًا في كلتي المصفوفتين، ولذلك فهو غير موجود في خرج هذه الدالة. على النقيض من ذلك، الزوج <code>0 => "red"</code> موجود في خرج هذه الدالة لأن المفتاح المقابل للقيمة <code>"red"</code> بالمصفوفة الأولى مختلف.<syntaxhighlight lang="php"> | ||
− | |||
<?php | <?php | ||
− | |||
$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_assoc($array1, $array2); | $result = array_diff_assoc($array1, $array2); | ||
− | |||
print_r($result); | print_r($result); | ||
+ | ?> | ||
− | |||
</syntaxhighlight> | </syntaxhighlight> | ||
نتيجة المثال السابق:<syntaxhighlight lang="php"> | نتيجة المثال السابق:<syntaxhighlight lang="php"> | ||
Array | Array | ||
− | |||
( | ( | ||
− | + | [b] => brown | |
− | + | [c] => blue | |
− | + | [0] => red | |
− | |||
− | |||
− | |||
− | |||
) | ) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | المثال 2 :مثال بسيط آخر عن الدالة array_diff_assoc() | + | المثال 2 :مثال بسيط آخر عن الدالة <code>array_diff_assoc()</code> |
+ | |||
+ | يُعدّ زوجان من المفاتيح والقيم متماثلان فقط إذا كان <code>(string) $elem1 === (string) $elem2</code>. بكلمات أخرى، تَستخدِم الدالة المقارنة الصارمة لمقارنة القيم ولذلك يجب أن يكون التمثيل النصي للقيم متماثلًا تمامًا.<syntaxhighlight lang="php"> | ||
− | |||
<?php | <?php | ||
− | |||
$array1 = array(0, 1, 2); | $array1 = array(0, 1, 2); | ||
− | |||
$array2 = array("00", "01", "2"); | $array2 = array("00", "01", "2"); | ||
− | |||
$result = array_diff_assoc($array1, $array2); | $result = array_diff_assoc($array1, $array2); | ||
− | |||
print_r($result); | print_r($result); | ||
+ | ?> | ||
− | |||
</syntaxhighlight> | </syntaxhighlight> | ||
نتيجة المثال السابق:<syntaxhighlight lang="php"> | نتيجة المثال السابق:<syntaxhighlight lang="php"> | ||
Array | Array | ||
− | |||
( | ( | ||
− | + | [0] => 0 | |
− | + | [1] => 1 | |
− | |||
− | |||
− | |||
) | ) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== ملاحظات == | == ملاحظات == | ||
− | تتحقق هذه الدالة من بعد واحد فقط للمصفوفات متعددة الأبعاد. بالطبع يمكنك التحقق من أبعاد أعمق باستخدام array_diff_assoc($array1[0], $array2[0]) على سبيل المثال. | + | تتحقق هذه الدالة من بعد واحد فقط للمصفوفات متعددة الأبعاد. بالطبع يمكنك التحقق من أبعاد أعمق باستخدام <code>array_diff_assoc($array1[0], $array2[0])</code> على سبيل المثال. |
تأكد من أنك تمرر المعاملات بالترتيب الصحيح بحيث تكون المصفوفة التي تقارن الدالة منها هي المعامل الأول. | تأكد من أنك تمرر المعاملات بالترتيب الصحيح بحيث تكون المصفوفة التي تقارن الدالة منها هي المعامل الأول. | ||
− | == انظر | + | == انظر أيضًا == |
− | * الدالة array_diff(): تحسب الفرق بين المصفوفات. | + | * الدالة <code>[[PHP/array_diff|array_diff()]]</code>: تحسب الفرق بين المصفوفات. |
− | * الدالة | + | * الدالة <code>[[PHP/array_diff_uassoc|array_diff_uassoc()]]</code>: تحسب الفرق بين المصفوفات مع استخدام تحقق إضافي من الفهارس عن طريق تنفيذ دالة يحددها المستخدم. |
− | + | * الدالة <code>[[PHP/array_udiff_assoc|array_udiff_assoc()]]</code>: تحسب الفرق بين المصفوفات مع استخدام تحقق إضافي من الفهارس وتقارن البيانات باستخدام دالة يحددها المستخدم. | |
− | * الدالة array_udiff_assoc(): تحسب الفرق بين المصفوفات مع استخدام تحقق إضافي من الفهارس وتقارن البيانات باستخدام دالة يحددها المستخدم. | + | * الدالة <code>[[PHP/array_udiff_uassoc|array_udiff_uassoc()]]</code>: تحسب الفرق بين المصفوفات مع استخدام تحقق إضافي من الفهارس وتقارن البيانات والفهارس باستخدام دالة يحددها المستخدم. |
− | * الدالة array_udiff_uassoc(): تحسب الفرق بين المصفوفات مع استخدام تحقق إضافي من الفهارس وتقارن البيانات والفهارس باستخدام دالة يحددها المستخدم. | + | * الدالة <code>[[PHP/array_intersect|array_intersect()]]</code>: تحسب التقاطع بين المصفوفات. |
− | * الدالة array_intersect(): تحسب التقاطع بين المصفوفات. | + | * الدالة <code>[[PHP/array_intersect_assoc|array_intersect_assoc()]]</code>: تحسب التقاطع بين المصفوفات مع استخدام تخقق إضافي بمقارنة الفهارس. |
− | * الدالة array_intersect_assoc(): تحسب التقاطع بين المصفوفات مع استخدام تخقق إضافي بمقارنة الفهارس. | ||
== مصادر == | == مصادر == |
المراجعة الحالية بتاريخ 03:49، 4 أبريل 2018
(PHP 4 >= 4.3.0, PHP 5, PHP 7)
تحسب الدالة array_diff_assoc()
الفرق بين عدة مصفوفات مع أخذ مفاتيح المصفوفات بالحسبان.
الوصف
array array_diff_assoc ( array $array1 , array $array2 [, array $... ] )
تقارن الدالة array_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()
: تحسب التقاطع بين المصفوفات مع استخدام تخقق إضافي بمقارنة الفهارس.