View Full Version : سئوال : نمایش عناصر تکراری ارایه در php
blognevis
چهارشنبه 25 اردیبهشت 1392, 11:54 صبح
سلام به همه دوستان
در صورت امکان اگر تایع یا دستوری است که بتوان عناصر تکراری ارایه را همراه با تعداد تکرار عنصر و اندیس را برگردونه و چاپ کنه راهنمایی کنید
مثلا میخوام این ارایه که بصورت رندوم پر شده را بررسی کنه و نتیجه را ارائه بدهد
while ($i < 20) {
$nums[] = mt_rand(0, 100);
$i++;
}
dousti_design
چهارشنبه 25 اردیبهشت 1392, 12:24 عصر
$arr = array(1=>'salam',2=>'salam',3 =>'salam' ,4=>'hello', 5=>'hello');
$duplicates = array_diff_assoc($arr, array_unique($arr));
$count = array();
foreach($duplicates as $value)
{
if($count[$value] == 0)
$count[$value]++;
$count[$value]++;
}
print_r($count);
blognevis
چهارشنبه 25 اردیبهشت 1392, 13:24 عصر
سلام مجدد
من این دستور را اجرا کردم . درست کار میکنه ولی میخوام علاوه بر نمایش عنر های تکرای تعداد تکرار هم مشخص کنه مثلا بگه عدد 22 در ارایه 3 بار نمایش داده شده در حال حاظر
while ($i < 20) {
$nums[] = mt_rand(0, 100);
$i++;
}
var_dump($nums);
print"<hr>";
$uniques = array_unique($nums);
$dups = array_diff_assoc($nums, $uniques);
print_r($dups);
blognevis
چهارشنبه 25 اردیبهشت 1392, 13:37 عصر
دوستان راه بهتری هم سراغ دارند؟
dousti_design
چهارشنبه 25 اردیبهشت 1392, 14:05 عصر
دوست عزیز این کد هم همین کار رو انجام میده. خروجیش اینجوری میشه:
Array ( [salam] => 3 [hello] => 2 )
سلام 3بار و hello 2بار تکرار شدن
blognevis
چهارشنبه 25 اردیبهشت 1392, 14:24 عصر
دوست عزیز این کد هم همین کار رو انجام میده. خروجیش اینجوری میشه:
Array ( [salam] => 3 [hello] => 2 )
سلام 3بار و hello 2بار تکرار شدن
سلام
ممنون . حق با شما است . من تازه شروع کردم . علم کافی ندارم و عذر خواهی میکنم .
ایا امکان داره این چند خط را هم خلاصه تر کرد ؟
xcodex
چهارشنبه 25 اردیبهشت 1392, 14:28 عصر
دوست عزیز راه بهتری هم هست استفاده از تابع array_count_values به صورت زیر :
print_r(array_count_values($nums));
تعداد تکرار هر ایندکس رو مشخص میکنه
موفق باشید
blognevis
چهارشنبه 25 اردیبهشت 1392, 14:33 عصر
دوست عزیز راه بهتری هم هست استفاده از تابع array_count_values به صورت زیر :
print_r(array_count_values($nums));
تعداد تکرار هر ایندکس رو مشخص میکنه
موفق باشید
تشکر دوست عزیز
فقط این تابع غیر تکراری ها را هم نمایش میدهد
xcodex
چهارشنبه 25 اردیبهشت 1392, 14:39 عصر
بله میتونید چک کنید کدوم مقدار بزرگتر از 1 هست که فقط اونو نمایش بده . به این صورت :
$iterate=array_count_values($nums);
$result=array();
foreach($iterate as $key=>$value)
{
if($value>1)
{$result[$key]=$value;}
}
print_r($result);
blognevis
چهارشنبه 25 اردیبهشت 1392, 15:42 عصر
تشکر از هر دو دوست عزیز
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.