Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]duplikaty w tablicy, wyświetlanie 1 losowo wybranego
Forum PHP.pl > Forum > Przedszkole
meron11
mam tablicę(część):

Cytat
alegratka samochody
alegro motoryzacja
alegro pl samochody osobowe
alegro samochody
alegro samochody czesci
alegro samochody osobowe
alegro samochody osobowe u¿ywane
alegro.pl motoryzacja
alfa okna
allegro moto
allegro motoryzacja
aluplast okna
anonse motoryzacja
anonse samochody
aukcje samochodowe
auta
auta gry
auta osobowe
pomoc domowa
auta z niemiec
auta z usa
autogie³da samochodowa
autogratka
autokomis
automoto
avante okna
bia³e drzwi wewnêtrzne
boazeria ¶wierkowa
broker samochodowy
brugmann okna


i o to chodzi żeby skrypt wyświetlał za każdym razem wyświetlał zawartosc tablicy, jeżeli są duplikaty (załózmy po 1 słowie[to mozna explode rozdzielić])wybrał jeden losowy tj po pierwszy przebiegu dla tego wyżej otrzymuje:


alegratka samochody
alegro samochody
alegro.pl motoryzacja
alfa okna
aluplast okna
anonse motoryzacja
anonse samochody
auta
pomoc domowa
autogie³da samochodowa
autogratka
autokomis
automoto
avante okna
bia³e drzwi wewnêtrzne
boazeria ¶wierkowa
broker samochodowy
brugmann okna



za 2 razem inny zestaw z wybranych duplikatów i tak w kółko, nie wiem jak to ugryźć.Moze ktoś nakierować?
bastard13
Na pewno da się to zrobić dużo bardziej optymalnie, ale:
  1. $arr = array(/*twoja tablica*/);
  2. shuffle($arr); //miesza tablicę
  3.  
  4. $temp = array();
  5. foreach ($arr as $value)
  6. {
  7. $valuePart = explode(' ', $value);
  8. if (!in_array($valuePart, $temp))
  9. {
  10. echo $value;
  11. $temp[] = $valuePart;
  12. }
  13. }
  14.  
meron11
Twój skrypt tylko przetasował tablicę, duplikatów nie "wybierał" ale dzięki za bazę, pokombinuję sam, ale jak masz jakąś propozycje t to chcętnie wysłucham wink.gif

Niestety lipa, zrobiłem też tak:
  1. $myfile = 'wyrazy.txt';
  2. $arr = file($myfile);
  3.  
  4.  
  5. shuffle($arr); //miesza tablicę
  6.  
  7. $temp = array();
  8. foreach ($arr as $value)
  9. {
  10. $linia=substr($value,'0',$_GET['ile']);
  11. //$valuePart = explode(' ', $value);
  12. if(preg_match("/^$linia/i",$value))
  13. {
  14. echo $value;
  15. echo "<br />";
  16. $temp[] = $valuePart;
  17. }
  18.  
  19.  
  20. }


I też to samo ;/ Oczywiście getem liczbę znaków podaję wink.gif

POnawiam pytanie bo kompletnie mi to nie wychodzi..
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.