السلام عليكم و رحمة الله تعالى و بركاته
انا عندي عدة أسماء في ملف نصي و أريد طريقة لأتأكد بأن هذا الإسم لم يتكرر في الملف
لو سمحتم
توجد طرق كثيرة جدا، ما فكرت فيه الآن بسيط وهو قلب قيم المصفوفة إلى مفاتيح ثم إرجاعها مرة أخرى، وذلك عبر الدالة array_flip
مثال:
$arr = array('a'=>'A','b'=>'B','c'=>'A');
$arr = array_flip($arr);
$arr = array_flip($arr);
print_r($arr);
ولكن كما يُقال، هذه الطريقة ليست لصناعة الصواريخ!!
طريقة فعلها تختلف من لغة إلى أخرى، في بايثون مثلًا
for i, name in enumerate(names[:-2]):
if name in names[i+1:]:
#الاسم مكرر
هل تعرف كيف تفعلها في php مع العلم أنه سيتم التطبيق على ملف txt
يعني يتم إستيراد الأسماء من ملف txt و التأكد من عدم تكرار إسم
و إذا وجد إسم مكرر يستم حذفه و شكرا لك
آسف, لا أعلم كيف تُفعل في php ولكن أظنها ستكون قريبة. والآن بما أنك ذكرت أنك تريد فقط حذف المتكرر، ففي بايثون دالة تقوم بذلك
set(names)
أتمنى أن يساعدك أحد أخبر مني في php
with open("file.txt", "r", encoding='utf-8') as myfile:
#افترضت أن كل سطر يحوي اسمًا واحدًا فقط
names = myfile.read().split('\n')
names = list(set(names)) #هذه مصفوفة الاسماء بعد حذف الاسماء المكررة
print(names) #إذا أردت أن تطبع قائمة الأسماء
#إذا أردت أن تصدر الاسماء إلى ملف نصي
with open("newfile.txt", "w", encoding='utf-8') as myfile:
output = ''
for name in names:
output += name + '\n'
myfile.write(output)
التعليقات