PDA

View Full Version : ارسال لینک ها ی غیر تکراری با هبربار دکمه زدن



mhabat
یک شنبه 07 مهر 1392, 17:53 عصر
با سلام.

من حدود 4000 تا فایل داخل یم پوشه دارم که آدرسشون داخل یک آرایه هست.
حالا می خوام برنامه یی بنیوسم که وقتی کاربر دکمه رو زد
هر بار 10 تا ار لینک هارو نمایش بده
به طوری که 10 تا لینک جدید با قبلی یکی نباشه!
باید چی کار کنم؟

arashactive
یک شنبه 07 مهر 1392, 17:59 عصر
دو حالت داره یا رندوم می خواهید نمایش بدید ، یا بر اساس ترتیب :
اگه بر اساس ترتیب باشه که کافیه ایندکس اخرین رکورد نمایش داده شده رو به تابع بدید که از ان بزرگ تر تا 10 را بشماره و نمایش بده
اگه می خواهید رندوم این کارو انجام بدید : ( باید از یک آرایه کمکی استفاده کنید که اگه مقداری از آرایه نمایش داده شد به ارایه دوم بره و از لیست ارایه اول شما حذف بشه )
اگه منظور سوال رو خوب متوجه نشدم بیشتر توضیح بدید لطفا
با تشکر

mhabat
یک شنبه 07 مهر 1392, 21:14 عصر
ممنون.
حالت اول میشه!
میشه بیشتر توضیح بدین باید چی کار کنم!
فکر کنید داخل یک آرایه 500 تا لینک دارید که می خواهید به ترتیب با هر بار کلیک 10 تا از لینک ها رو نمایش بده.

shahriyar3
یک شنبه 07 مهر 1392, 21:24 عصر
یک آرایه دوم درست میکنی هر ایندکسی رو نمایش دادی از آرایه اول جذف میکنی به آرایه دوم اضافه میکنی
میتونی هر بار بعد از نمایش آرایه ها رو مرتب کنی که ایندکس هاشون دوباره از 0 شروع بشه
در اینصورت یک حلقه ساده با foreach هم بنویسی کارت و راه میندازه

mhabat
یک شنبه 07 مهر 1392, 21:43 عصر
آقا من نگرفتم!

وقتی از آرایه اول حذف شد برای چی به آرایه دوم اضافه شه؟

اگر میشه یه مثال کوچیک بزن.

مثلا این آرایه رو ببین:


$m=array("a","b","c","d","f","g","i","h","j","t");

می خوام وقتی دکمه رو کاربر میزنه 2 تا از خانه های آرایه رو نمایش بده به طوری که وقتی بار دوم دکمه رو زد 2 خانه ی بعدش رو نشون بده.

مثلا بار اول a و b و بار دوم c و d رو نمایش بده.

shahriyar3
یک شنبه 07 مهر 1392, 21:49 عصر
ببین الگوریتم برنامت و گفتم دیگه
مثال میزنم برات
یه کیسه تخمه داریم 2000 تا تخمه توشه وقتی دونه دونه شروع میکنیم پوستشونو بشکنیم پوستشو میریزیم تو یه کیسه دیگه نمیریزیم پیش بقیه تخمه ها که
یه آرایه میشه آدرس های نمایش داده شده
اون یکی آرایه میشه آرایه هنوز نمایش داده نشده
یه راه دیگه هم هست اینکه برای آرایه flag تعریف کنی یعنی آرایه 2 بعدی تعریف کنی که هر ایندکس شامل یک flag و خودش باشه که کار باهاش سخت تره و سرعتش هم پائین تره

mhabat
یک شنبه 07 مهر 1392, 22:52 عصر
خوب باهم چک کنیم و بعد اوکی کنیم.
ما یک آرایه داریم که مثلا می خوایم هربار که دکمه زده میشه 2 خانه از اون رو به ترتیب واسه ما نشون بده:
اول یه شرط گزاشتیم که باید دکمه زده بشه.
بعد اینکه 2 خونه رو نمایش بده و بعدش اون خونه های نمایش داده شده رو داخل یک آرایه دیگه قرار بدیم.
بعد اون خونه های آرایه اولی رو پاک کنیم.
این از الگوریتم.

حالا سورس ناقص:


<form action="" method="post">
<input type="submit" name="dokme" value = "ok" class="buttom">
</form>
<?php

$m=array("a","b","c","d","f","g","i","h","j","t");
if(isset($_POST['dokme'])) {
for($i=0;$i<2;$i++) {

echo $m[$i];
$mm[$i]=$m[$i];
unset($m[$i]);

}
}
?>

shahriyar3
یک شنبه 07 مهر 1392, 23:02 عصر
<form action="" method="post">
<input type="submit" name="submit">
</form>
<?php

$m = array("a","b","c","d","f","g","i","h","j","t");
$mm = array();
if(isset($_POST['submit'])) {
for($i=0;$i<2;$i++) {
echo $m[$i];
$mm[]=$m[$i];
unset($m[$i]);
$m = array_values($m);
}
}
?>