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

من موسوعة حسوب
< PHP
اذهب إلى التنقل اذهب إلى البحث
ط
ط (نقل عبد اللطيف ايمش صفحة 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)
  
تحسب الدالة arr‎ay_diff_assoc()‎ الفرق بين عدة مصفوفات مع أخذ مفاتيح المصفوفات بالحسبان.
+
تحسب الدالة <code>arr‎ay_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>تقارن الدالة arr‎ay_diff_assoc()‎‎ المصفوفات المُمَرََرة كمعاملات وتعيد الفرق بينها. هذه الدالة تختلف عن دالة array_diff إذ إنَّها تأخذ بالحسبان المفاتيح والقيم المرتبطة بها، وليس المفاتيح فحسب.
+
</syntaxhighlight>تقارن الدالة <code>arr‎ay_diff_assoc()</code>‎‎ المصفوفات المُمَرََرة كمعاملات وتعيد الفرق بينها. هذه الدالة تختلف عن دالة <code>[[PHP/array_diff|array_diff()‎]]</code> إذ إنَّها تأخذ بالحسبان المفاتيح والقيم المرتبطة بها، وليس المفاتيح فحسب.
  
 
== المعاملات ==
 
== المعاملات ==
array1
 
  
 +
=== <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">
  
في هذا المثال، سترى الزوج "a" => "green" موجودًا في كلتي المصفوفتين، ولذلك فهو غير موجود في خرج هذه الدالة. على النقيض من ذلك، الزوج ‎0 => "red"‎ موجود في خرج هذه الدالة لأن المفتاح المقابل للقيمة "red" بالمصفوفة الأولى مختلف.<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
   [b] => brown
+
    [c] => blue
 
+
    [0] => red
   [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">
  
يُعدّ زوجان من المفاتيح والقيم متماثلان فقط إذا كان ‎(string) $elem1 === (string) $elem2. بكلمات أخرى، تَستخدِم الدالة المقارنة الصارمة لمقارنة القيم ولذلك يجب أن يكون التمثيل النصي للقيم متماثلًا تمامًا.<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
   [0] => 0
+
    [1] => 1
 
 
   [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>‎: تحسب الفرق بين المصفوفات.
* الدالة array_diff_assoc()‎: تحسب الفرق بين المصفوفات مع استخدام تحقق إضافي من الفهارس.
+
* الدالة <code>[[PHP/array_diff_uassoc|array_diff_uassoc()‎]]</code>: تحسب الفرق بين المصفوفات مع استخدام تحقق إضافي من الفهارس عن طريق تنفيذ دالة يحددها المستخدم.
* الدالة array_diff_uassoc()‎: تحسب الفرق بين المصفوفات مع استخدام تحقق إضافي من الفهارس عن طريق تنفيذ دالة يحددها المستخدم.
+
* الدالة <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)

تحسب الدالة arr‎ay_diff_assoc()‎ الفرق بين عدة مصفوفات مع أخذ مفاتيح المصفوفات بالحسبان.

الوصف

array array_diff_assoc ( array $array1 , array $array2 [, array $... ] )

تقارن الدالة arr‎ay_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()‎: تحسب التقاطع بين المصفوفات مع استخدام تخقق إضافي بمقارنة الفهارس.

مصادر