English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
هذا المقال يشرح كيفية إزالة العناصر المكررة من مصفوفة ثنائية باستخدام PHP. يُشارك هنا للاستفادة منه، وتفاصيل كما يلي:
بالنسبة لمصفوفة ثنائية مثل التالية، يتم طلب إزالة العناصر المكررة:
$arr = array( '0'=>array( 'name'=>'james', 'age'=>30, ), '1'=>array( 'name'=>'susu', 'age'=>26, ), '2'=>array( 'name'=>'james', 'age'=>30, ), 'new'=>array( 'name'=>'kube', 'age'=>37, ), 'list'=>array( 'name'=>'kube', 'age'=>27, ), );
1- يجب أن لا تكون القيم داخل الصف الأول من المصفوفة الثنائية متطابقة تمامًا، وإزالة العناصر المكررة:
النص التالي:
<?php $arr = array( '0'=>array( 'name'=>'james', 'age'=>30, ), '1'=>array( 'name'=>'susu', 'age'=>26, ), '2'=>array( 'name'=>'james', 'age'=>30, ), 'new'=>array( 'name'=>'kube', 'age'=>37, ), 'list'=>array( 'name'=>'kube', 'age'=>27, ), ); printf("Before tranform the array:<br>"); //输出原来的数组 print_r($arr); echo "<br/>"; function more_array_unique($arr=array()){ foreach($arr[0] as $k => $v){ $arr_inner_key[]= $k; // تسجيل مفتاح المجموعة الداخلية في مجموعة مفردة } foreach ($arras $k => $v){ $v =join(",",$v); // تنزيل المستوى باستخدام implode() أيضًا $temp[$k] =$v; // الحفاظ على المفتاح الأصلي $temp[] هو عدم الحفاظ على المفتاح } printf("بعد التقسيم إلى المجموعة:<br>"); print_r($temp); // إخراج المجموعة بعد التقسيم echo"<br/>"; $temp =array_unique($temp); // إزالة التكرارات: إزالة الأحرف المكررة foreach ($tempas $k => $v){ $a = explode(",",$v); // إعادة تنظيم بعد التقسيم مثل: Array( [0] => james [1] => 30 ) $arr_after[$k]= array_combine($arr_inner_key,$a); // إعادة مزج المفتاح والقيمة } //ksort($arr_after);//الترتيب كما هو الحال: ksort لتسجيل القيم في المفتاح الأساسي (الحفاظ على المفتاح الأصلي) ,sort بدون الحفاظ على المفتاح return$arr_after; } $arr_new = more_array_unique($arr); // استدعاء وظيفة إزالة التكرارات printf("إزالة التكرارات من المجموعة:<br>"); print_r($arr_new); echo "<br/>"; ?>
نتيجة الخروج:
قبل التحويل إلى المجموعة: // المجموعة الأصلية مجموعة ( [0] => Array ( [name] => james [age] => 30 ) [1] => Array ([name] => susu [age] => 26 ) [2] => Array ( [name] => james [age]=> 30 ) [new] => Array ( [name] => kube [age] => 37 ) [list] =>Array ( [name] => kube [age] => 27 ) ) After split the array: //البنية بعد التقسيم Array ( [0] => james,30 [1] => susu,26 [2] => james,30 [new] =>kube,37 [list] => kube,27 ) Duplicate removal of thearray: //البنية بعد إزالة التكرارات Array ( [0] => Array ( [name] => james [age] => 30 ) [1] => Array ([name] => susu [age] => 26 ) [new] => Array ( [name] => kube [age]=> 37 ) [list] => Array ( [name] => kube [age] => 27 ) )
2- إزالة التكرارات من المصفوفة الثنائية الداخلية لمجموعة واحدة لمفتاح معين لا يمكن أن يكون متكرراً، إزالة العناصر المكررة:
للقيام بإزالة التكرارات لقيمة مفتاح معينة
<?php $arr= array(……); //كما في المصفوفة الثنائية السابقة functionsecond_array_unique_bykey($arr, $key){ $tmp_arr = array(); foreach($arr as $k => $v) { if(in_array($v[$key], $tmp_arr)) //البحث عن $v[$key] في مجموعة $tmp_arr إذا كانت موجودة فتسلم true { unset($arr[$k]); //تدمير متغير إذا كان القيمة الموجودة في $tmp_arr متشابهة } else { $tmp_arr[$k] = $v[$key]; //وضع القيم المختلفة في هذا المجموعة للحفظ } } //ksort($arr); //ksort وظيفة ترتيب القيم في البنية الحالية (تحافظ على المفتاح) sort لا تحافظ على المفتاح return $arr; } $key ='name'; printf("بالنسبة للключ المقدم->%s:<br> print_r($arr_key); echo "<br/>"; ?>
نتيجة الخروج:
بالنسبة لـ المفتاح المقدم -> name: Array ( [0] => Array ( [name] => james [age] => 30 ) [1] => Array ([name] => susu [age] => 26 ) [new] => Array ( [name] => kube [age]=> 37 ) )
النص: هناك أداتان على الموقع لتحرير النصوص بسهولة، وأوصي بذلك:
أداة إزالة التكرار عبر الإنترنت:
http://tools.jb51.net/code/quchong
أداة إزالة التكرار النصي عبر الإنترنت:
http://tools.jb51.net/aideddesign/txt_quchong
للمزيد من المعلومات حول PHP، يمكن للقراء المهتمين الاستفسار عن المقالات الخاصة بالموقع: 'كامل تقنيات تحكم PHP (Array)'. 'تقنيات وتقارير تحسين PHP'. 'تقارير استخدام النصوص في PHP'. 'تقارير الاستخدام الشائع للوظائف والطرق في PHP'. 'تقارير معالجة الأخطاء والاستثناءات في PHP'. 'دليل البدء بأساسيات لغة PHP'. 'دليل البدء بتصميم برامج PHP قائم على الأحداث'. 'دليل البدء بتصميم برامج PHP باستخدام قاعدة بيانات MySQL'. 'مجموع تقنيات التعامل مع قواعد البيانات الشائعة في PHP'.
آمل أن يساعدك ما ذكرته في هذا المقال في تصميم برامج PHP الخاصة بك.
بيان: محتوى هذا المقال تم جمعه من الإنترنت، ملكية المقال للملك المستقل، تم جمع المحتوى بشكل تلقائي من قبل مستخدمي الإنترنت، لم يكن هناك تحرير بشري للمنشور، ولا يتحمل الموقع أي مسؤولية قانونية. إذا اكتشفت أي محتوى يشتبه في انتهاك حقوق النسخ، فيرجى إرسال بريد إلكتروني إلى: notice#oldtoolbag.com (عند إرسال البريد الإلكتروني، يرجى استبدال '#' ب '@') لتقديم الشكوى، وتقديم الأدلة ذات الصلة، وسيتم حذف المحتوى المزعوم الذي يشتبه في انتهاك حقوق النسخ فورًا.