PDA

View Full Version : جلوگیری از قرار گرفتن مقدار تکراری در آرایه



mhabat
شنبه 16 شهریور 1392, 22:10 عصر
با سلام.
من از طریق یک تکست آریا تعدادی نام رو گیرم.
و هر خط رو از طریق explode داخل یک خانه از آرایه قرار میدم.
حالا چه طور میتونم نام های تکراری رو در کل آرایه حذف کنم؟

mahmod2000
شنبه 16 شهریور 1392, 22:13 عصر
array_unique()

mhabat
یک شنبه 17 شهریور 1392, 01:16 صبح
ممنون.
آقا وقتی از print_r استفاده می کنم تمام خانه هایی که تکراری نیستند رو نشون میده ولی وقتی از echo به این شکا استفاده می کنم تمام خانه هارو نمایش نمیده!


$a=cut($cuts);
$b=array_unique($a);
for ($ii=0;$ii<count($b);$ii++) { if(empty($b[$ii])) { continue; }
echo $b[$ii]."</br>";
}

mhabat
یک شنبه 17 شهریور 1392, 23:17 عصر
آفا را هی نیست؟

matrixhassan
دوشنبه 18 شهریور 1392, 10:49 صبح
دوست عزیز که پاسخ گفت

http://www.php.net/manual/en/function.array-unique.php

abolfazl-z
دوشنبه 18 شهریور 1392, 13:12 عصر
همانطور که دوستمان گفت و :


print_r(array_values(array_unique($array)));

mhabat
دوشنبه 18 شهریور 1392, 22:28 عصر
تشکر بابت پاسخ دوستان.

ولی پست دومی من یه سورس قرار دادم که اگه نگاه کنید می بینید که با array_unque مشکلم حل شده ولی من می خوام از دستور echo برای نمایش مقادیر استفاده کنم چون می خوام مقادیر رو زیر هم نمایش بدم.

ولی وقتی از دستور Echo استفاده می کنم تمام مقادیر رو نشون نمیده! سورس رو ببینید:


$a=cut($cuts);$b=array_unique($a);for ($ii=0;$ii<count($b);$ii++) { if(empty($b[$ii])) { continue; }echo $b[$ii]."</br>";}

siavash82i
پنج شنبه 19 اردیبهشت 1398, 19:52 عصر
http://www.rahkarenovin.com/page/101/ (http://www.rahkarenovin.com/page/101/)

سلام دوستان من میخوام محتوای تکراریمو حذف کنم قطعه کدی که نوشتمو میزارم ولی همچنان محتوای تکراری من در خروجی نشون داده میشه!



$result2 = $db->sql_query("SELECT keyword FROM ".$prefix."_blog where keyword!='' and active=1 order by keyword asc");
while (list($keyword) = $db->sql_fetchrow($result2)) {
$names = explode('،',$keyword);
$names_unique = array_unique($names);
// $names_unique = array_filter($names);
$ttgo = str_replace(" ", "-", $names_unique[0]);


$out1 .= "<li><a href='".$site_url."search/".$ttgo."/'>".$names_unique[0]."</a></li>\n";

}

peymang
جمعه 20 اردیبهشت 1398, 17:28 عصر
حذف رکوردهای تکراری از دیتابیس

http://barnamenevis.org/showthread.php?233478-%DA%A9%D9%88%D8%A6%D8%B1%DB%8C-%D8%AD%D8%B0%D9%81-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%D8%AA%DA%A9%D8%B1%D8%A7%D8%B1%DB%8C-%D8%AF%D8%B1-mysql

http://snippets.ir/131/%D8%AD%D8%B0%D9%81-%D8%B1%DA%A9%D9%88%D8%B1%D8%AF-%D9%87%D8%A7%DB%8C-%D8%AA%DA%A9%D8%B1%D8%A7%D8%B1%DB%8C-mysql.html

حذف رکوردهای تکراری از کوئری select
http://alihossein.ir/tutorials/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-distinct-mysql

siavash82i
شنبه 21 اردیبهشت 1398, 10:01 صبح
طراحی سایت شرکتی (http://www.rahkarenovin.com) ثبت دامنه ارزان (http://www.rahkarenovin.net) طراحی سایت کلینیک زیبایی (http://www.rahkarenovin.com/page/101/)


سلام دوستان من میخوام محتوای تکراریمو حذف کنم قطعه کدی که نوشتمو میزارم ولی همچنان محتوای تکراری من در خروجی نشون داده میشه!


$result2 = $db->sql_query("SELECT DISTINCT keyword FROM ".$prefix."_blog where keyword!='' and active=1 order by keyword asc");
while (list($keyword) = $db->sql_fetchrow($result2)) {
$names = explode('،',$keyword);
$names_unique = array_unique($names);
// $names_unique = array_filter($names);
$ttgo = str_replace(" ", "-", $names_unique[0]);


$out1 .= "<li><a href='".$site_url."search/".$ttgo."/'>".$names_unique[0]."</a></li>\n";

}








دوستان دقت کنین من قطعه کد خودم را گذاشتم و در آن دارم از array_unique استفاده میکنم چون موارد خروجی من آرایه هستند
لطفا در این مورد راهنمایی بفرمایید


تشکر

plague
شنبه 21 اردیبهشت 1398, 17:05 عصر
با distinct میتونی مقادیر تکراری رو از دیتابیس نونی دیگه کار به آرایه نمیکشه

https://www.w3schools.com/sql/sql_distinct.asp

siavash82i
شنبه 21 اردیبهشت 1398, 20:13 عصر
ttp://www.rahkarenovin.com/page/102/ (http://<font color=&quot;#f0f8ff&quot;> ttp://www.rahkarenovin.com/page/102/</font>)


با distinct میتونی مقادیر تکراری رو از دیتابیس نونی دیگه کار به آرایه نمیکشه
https://www.w3schools.com/sql/sql_distinct.asp



دستت درد نکنه بابت پاسخ ولی نمیدونم چرا بدون مطالعه سوال و قطعه کد جواب دادین!!:چشمک: (http://www.rahkarenovin.com/)

peymang
یک شنبه 22 اردیبهشت 1398, 11:21 صبح
دستت درد نکنه بابت پاسخ ولی نمیدونم چرا بدون مطالعه سوال و قطعه کد جواب دادین!!:چشمک: (http://www.rahkarenovin.com/)

یه خروجی از جدول به همراه اطلاعاتش قرار بده تا بشه راه حل بهتری ارائه داد.

ali_sed
دوشنبه 23 اردیبهشت 1398, 21:50 عصر
ممنون.
آقا وقتی از print_r استفاده می کنم تمام خانه هایی که تکراری نیستند رو نشون میده ولی وقتی از echo به این شکا استفاده می کنم تمام خانه هارو نمایش نمیده!


$a=cut($cuts);
$b=array_unique($a);
for ($ii=0;$ii<count($b);$ii++) { if(empty($b[$ii])) { continue; }
echo $b[$ii]."</br>";
}

سلام

دوستان راه حل ارائه داده اند که مشکتان را حل می کنید. اما شما دقیقا میخواهید بدونید مشکل کد شما کجاست. با این همه کنجکاوی برنامه نویس خوبی خواهید شد.
هر وقت به چنین مشکلی برخورد کردید حتما مستندات تابع را با دقت بخوانید.
دستور array_unique اندیس آرایه اصلی را تغییر نمیدهد به مثال زیر دقت کنید.


$a = array(0=>'a', 1=>'a', 2=>'b');
$b = array_unique($a);

//$b: 0=>'a'
// 2=>'b'

بنابراین بجای استفاده از for کافیست از foreach استفاده کنید. معمولا زمانی از for استفاده می شود که اندیس ها عددی و پشت سر هم باشند.